Commit 263f25796adc28aea3a87dbe97c80c672cf5301e
Merge branch 'tr/bugfix-qa' into tr/bugfix
Showing
2 changed files
with
42 additions
and
11 deletions
Show diff stats
src/adv/Adv.lua
| ... | ... | @@ -2127,6 +2127,32 @@ function Adv:doActive(activeId, target) |
| 2127 | 2127 | self.battle.player:addBaseAttr(attr, value, vtype) |
| 2128 | 2128 | return true |
| 2129 | 2129 | end |
| 2130 | + -- 13=将目标移动至地图随机点,可以移动至未翻开的空格 | |
| 2131 | + doActiveEffect[13] = function(_) | |
| 2132 | + for _, target in ipairs(targers) do | |
| 2133 | + end | |
| 2134 | + return true | |
| 2135 | + end | |
| 2136 | + -- 14=获得drop,在有坐标时需要道具飞入背包的展现。 | |
| 2137 | + doActiveEffect[14] = function(_, dropId) | |
| 2138 | + local gift = nil | |
| 2139 | + local dropData = csvdb["event_dropCsv"][dropId] | |
| 2140 | + if dropData then | |
| 2141 | + local item = dropData["range"]:randWeight(true) | |
| 2142 | + if item[1] ~= 0 then | |
| 2143 | + gift = {} | |
| 2144 | + gift[item[1]] = (gift[item[1]] or 0) + item[2] | |
| 2145 | + end | |
| 2146 | + end | |
| 2147 | + local roomId, blockId | |
| 2148 | + if not target or not target.roomId or not target.blockId then | |
| 2149 | + roomId, blockId = target.roomId, target.blockId | |
| 2150 | + end | |
| 2151 | + if gift then | |
| 2152 | + self:award(gift, {log = {desc = "doActive", int1 = activeId}}, {roomId = roomId, blockId = blockId}) | |
| 2153 | + end | |
| 2154 | + return true | |
| 2155 | + end | |
| 2130 | 2156 | |
| 2131 | 2157 | for _, effect in ipairs(activeData.effect:toArray()) do |
| 2132 | 2158 | local cur = effect:toArray(true, "=") | ... | ... |
src/adv/AdvMap.lua
| ... | ... | @@ -97,23 +97,28 @@ function Map:checkOver() |
| 97 | 97 | end |
| 98 | 98 | end |
| 99 | 99 | |
| 100 | +function Map:randEmptyBlock() | |
| 101 | + local pool = {} | |
| 102 | + for _, room_ in pairs(self.rooms) do | |
| 103 | + for _, block_ in pairs(room_.blocks) do | |
| 104 | + if block_.isOpen and not block_.event then | |
| 105 | + table.insert(pool, {room_, block_}) | |
| 106 | + end | |
| 107 | + end | |
| 108 | + end | |
| 109 | + if not next(pool) then return end | |
| 110 | + local idx = math.randomInt(1, #pool) | |
| 111 | + return pool[idx][1], pool[idx][2] | |
| 112 | +end | |
| 113 | + | |
| 100 | 114 | --随机一个空的位置生成怪, 如果没有就没有 |
| 101 | 115 | function Map:addNewMonsterRand(monsterId, where) |
| 102 | 116 | local room, block |
| 103 | 117 | if where then |
| 104 | 118 | room, block = where[1], where[2] |
| 105 | 119 | else |
| 106 | - local pool = {} | |
| 107 | - for _, room_ in pairs(self.rooms) do | |
| 108 | - for _, block_ in pairs(room_.blocks) do | |
| 109 | - if block_.isOpen and not block_.event then | |
| 110 | - table.insert(pool, {room_, block_}) | |
| 111 | - end | |
| 112 | - end | |
| 113 | - end | |
| 114 | - if not next(pool) then return end | |
| 115 | - local idx = math.randomInt(1, #pool) | |
| 116 | - room, block = pool[idx][1], pool[idx][2] | |
| 120 | + room, block = self:randEmptyBlock() | |
| 121 | + if not room then return end | |
| 117 | 122 | end |
| 118 | 123 | |
| 119 | 124 | if not monsterId then | ... | ... |