Commit 85ded2420393ebd8dad61ffdb753cda7bb24b540
1 parent
514590c2
丰富返回事件
Showing
5 changed files
with
33 additions
and
17 deletions
Show diff stats
src/GlobalVar.lua
| @@ -137,11 +137,15 @@ AdvBackEventType = { | @@ -137,11 +137,15 @@ AdvBackEventType = { | ||
| 137 | Passive = 13, -- 獲得被動 | 137 | Passive = 13, -- 獲得被動 |
| 138 | TurnEnd = 14, -- 回合结束 | 138 | TurnEnd = 14, -- 回合结束 |
| 139 | Miss = 15, -- miss | 139 | Miss = 15, -- miss |
| 140 | - BattleBegin = 16, -- 战斗开始 | 140 | + Cost = 16, -- 消耗道具 |
| 141 | Trap = 17, --陷阱 | 141 | Trap = 17, --陷阱 |
| 142 | Layer = 18, --切换层 | 142 | Layer = 18, --切换层 |
| 143 | MapShow = 19, -- 展示地图 | 143 | MapShow = 19, -- 展示地图 |
| 144 | ChooseArtifact = 20, -- 等待选择神器 | 144 | ChooseArtifact = 20, -- 等待选择神器 |
| 145 | + Use = 21, -- 使用道具 | ||
| 146 | + Potion = 22, -- 使用营养剂 | ||
| 147 | + Task = 23, --接收任务 | ||
| 148 | + Artifact = 24, --获得神器 | ||
| 145 | } | 149 | } |
| 146 | 150 | ||
| 147 | AdvScoreType = { | 151 | AdvScoreType = { |
src/actions/AdvAction.lua
| @@ -308,6 +308,7 @@ function _M.useItemRpc(agent, data) | @@ -308,6 +308,7 @@ function _M.useItemRpc(agent, data) | ||
| 308 | --消耗 | 308 | --消耗 |
| 309 | if itemData["function"] == 0 or itemData["function"] == 1 then | 309 | if itemData["function"] == 0 or itemData["function"] == 1 then |
| 310 | adv:cost({[itemId] = count}, {}) | 310 | adv:cost({[itemId] = count}, {}) |
| 311 | + adv:backUse({[itemId] = count}) | ||
| 311 | end | 312 | end |
| 312 | 313 | ||
| 313 | adv:checkAchievement(adv.AchievType.UseItem, count, itemId) | 314 | adv:checkAchievement(adv.AchievType.UseItem, count, itemId) |
| @@ -345,6 +346,7 @@ function _M.usePotionRpc(agent, data) | @@ -345,6 +346,7 @@ function _M.usePotionRpc(agent, data) | ||
| 345 | 346 | ||
| 346 | potionBag[potionId] = own - 1 | 347 | potionBag[potionId] = own - 1 |
| 347 | role:updateProperty({field = "potionBag", value = potionBag}) | 348 | role:updateProperty({field = "potionBag", value = potionBag}) |
| 349 | + adv:pushBackEvent(AdvBackEventType.Potion, {id = potionId}) | ||
| 348 | adv:afterRound() | 350 | adv:afterRound() |
| 349 | adv:saveDB() | 351 | adv:saveDB() |
| 350 | role:checkTaskEnter("AdvUsePotion") | 352 | role:checkTaskEnter("AdvUsePotion") |
| @@ -407,7 +409,7 @@ function _M.upArtifactRpc(agent, data) | @@ -407,7 +409,7 @@ function _M.upArtifactRpc(agent, data) | ||
| 407 | local status = adv:artifactLevelUp(id) | 409 | local status = adv:artifactLevelUp(id) |
| 408 | if not status then return 5 end | 410 | if not status then return 5 end |
| 409 | adv:cost(cost, {}) | 411 | adv:cost(cost, {}) |
| 410 | - | 412 | + adv:backCost(cost) |
| 411 | if status == 1 then -- 现在穿着呢。更新下 | 413 | if status == 1 then -- 现在穿着呢。更新下 |
| 412 | adv:saveDB() | 414 | adv:saveDB() |
| 413 | end | 415 | end |
src/adv/Adv.lua
| @@ -205,6 +205,7 @@ end | @@ -205,6 +205,7 @@ end | ||
| 205 | function Adv:awardArtifact(id, params) | 205 | function Adv:awardArtifact(id, params) |
| 206 | if self:isHaveArtifact(id) then return end | 206 | if self:isHaveArtifact(id) then return end |
| 207 | self.owner:changeUpdates({{type = "advAFGet", field = id, value = 1}}, params.notNotify) | 207 | self.owner:changeUpdates({{type = "advAFGet", field = id, value = 1}}, params.notNotify) |
| 208 | + self:pushBackEvent(AdvBackEventType.Artifact, {id = id}) | ||
| 208 | end | 209 | end |
| 209 | 210 | ||
| 210 | 211 | ||
| @@ -492,7 +493,7 @@ local function clickOut(self, room, block, params) | @@ -492,7 +493,7 @@ local function clickOut(self, room, block, params) | ||
| 492 | if self:getCurMap():checkOver() then --检查是否可以出去了 | 493 | if self:getCurMap():checkOver() then --检查是否可以出去了 |
| 493 | if #self.mapStack > 1 then -- 处于夹层中 | 494 | if #self.mapStack > 1 then -- 处于夹层中 |
| 494 | table.remove(self.mapStack) --退出夹层 | 495 | table.remove(self.mapStack) --退出夹层 |
| 495 | - self:backLayer() | 496 | + self:backLayer(-1) |
| 496 | else --处于底层 | 497 | else --处于底层 |
| 497 | 498 | ||
| 498 | local advPass = self.owner:getProperty("advPass") | 499 | local advPass = self.owner:getProperty("advPass") |
| @@ -580,6 +581,7 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) | @@ -580,6 +581,7 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) | ||
| 580 | -- 提交一个物品 | 581 | -- 提交一个物品 |
| 581 | [5] = function () | 582 | [5] = function () |
| 582 | if self:cost({[cond[2]] = cond[3]}, {}) then | 583 | if self:cost({[cond[2]] = cond[3]}, {}) then |
| 584 | + self:backCost({[cond[2]] = cond[3]}) | ||
| 583 | return true | 585 | return true |
| 584 | end | 586 | end |
| 585 | end, | 587 | end, |
| @@ -745,7 +747,7 @@ local function clickTrader(self, room, block, params) | @@ -745,7 +747,7 @@ local function clickTrader(self, room, block, params) | ||
| 745 | if (block.event.status or ""):getv(buyId, 0) == 1 then return end -- 买过了 | 747 | if (block.event.status or ""):getv(buyId, 0) == 1 then return end -- 买过了 |
| 746 | 748 | ||
| 747 | if not self:cost({[traderData.type] = block.event.shop[buyId][3]}, {}) then return end --不够 | 749 | if not self:cost({[traderData.type] = block.event.shop[buyId][3]}, {}) then return end --不够 |
| 748 | - | 750 | + self:backCost({[traderData.type] = block.event.shop[buyId][3]}) |
| 749 | local reward = self:award({[block.event.shop[buyId][1]] = block.event.shop[buyId][2]}) | 751 | local reward = self:award({[block.event.shop[buyId][1]] = block.event.shop[buyId][2]}) |
| 750 | block.event.status = block.event.status:setv(buyId, 1) | 752 | block.event.status = block.event.status:setv(buyId, 1) |
| 751 | self:checkTask(Adv.TaskType.Shop, 1, block.event.id) | 753 | self:checkTask(Adv.TaskType.Shop, 1, block.event.id) |
| @@ -759,7 +761,7 @@ local function clickBuild(self, room, block, params) | @@ -759,7 +761,7 @@ local function clickBuild(self, room, block, params) | ||
| 759 | local chooseData = csvdb["event_buildingCsv"][block.event.id] | 761 | local chooseData = csvdb["event_buildingCsv"][block.event.id] |
| 760 | local status, clearBlock = chooseCommon(self, room, block, chooseData, choose, "build") | 762 | local status, clearBlock = chooseCommon(self, room, block, chooseData, choose, "build") |
| 761 | if not status then return end | 763 | if not status then return end |
| 762 | - | 764 | + |
| 763 | self:checkTask(Adv.TaskType.Build, 1, block.event.id) | 765 | self:checkTask(Adv.TaskType.Build, 1, block.event.id) |
| 764 | self:checkAchievement(Adv.AchievType.Build, 1, block.event.id) | 766 | self:checkAchievement(Adv.AchievType.Build, 1, block.event.id) |
| 765 | 767 | ||
| @@ -810,7 +812,7 @@ local function clickLayer(self, room, block, params) | @@ -810,7 +812,7 @@ local function clickLayer(self, room, block, params) | ||
| 810 | self.battle:initMapEnemys(mapIdx) | 812 | self.battle:initMapEnemys(mapIdx) |
| 811 | self:checkAchievement(Adv.AchievType.EnterILayer, 1, mapId) | 813 | self:checkAchievement(Adv.AchievType.EnterILayer, 1, mapId) |
| 812 | end | 814 | end |
| 813 | - self:backLayer() | 815 | + self:backLayer(1) |
| 814 | return true | 816 | return true |
| 815 | end | 817 | end |
| 816 | 818 | ||
| @@ -1111,7 +1113,8 @@ function Adv:enemyDead(enemy, escape) | @@ -1111,7 +1113,8 @@ function Adv:enemyDead(enemy, escape) | ||
| 1111 | local enemyId = block.event.id | 1113 | local enemyId = block.event.id |
| 1112 | local monsterData = csvdb["event_monsterCsv"][enemyId] | 1114 | local monsterData = csvdb["event_monsterCsv"][enemyId] |
| 1113 | self:scoreChange(AdvScoreType.Kill, monsterData.type) | 1115 | self:scoreChange(AdvScoreType.Kill, monsterData.type) |
| 1114 | - self.battle.player:addExp(monsterData.exp) | 1116 | + local changeV = self.battle.player:addExp(monsterData.exp) |
| 1117 | + self:backDead(enemyId, changeV) | ||
| 1115 | if enemy:hadBuff(Buff.CHANGE_DROP_TO_CLICK) then -- 掉落转为 click | 1118 | if enemy:hadBuff(Buff.CHANGE_DROP_TO_CLICK) then -- 掉落转为 click |
| 1116 | local clickId = buff:effect() | 1119 | local clickId = buff:effect() |
| 1117 | block:updateEvent({ | 1120 | block:updateEvent({ |
| @@ -1203,20 +1206,16 @@ function Adv:backBlockChange(roomId, blockId) | @@ -1203,20 +1206,16 @@ function Adv:backBlockChange(roomId, blockId) | ||
| 1203 | self:pushBackEvent(AdvBackEventType.BlockChange, {roomId = roomId, blockId = blockId}) | 1206 | self:pushBackEvent(AdvBackEventType.BlockChange, {roomId = roomId, blockId = blockId}) |
| 1204 | end | 1207 | end |
| 1205 | 1208 | ||
| 1206 | -function Adv:backAtk(enemyId, receiver) | ||
| 1207 | - self:pushBackEvent(AdvBackEventType.Atk, {enemyId = enemyId, receiver = receiver}) | ||
| 1208 | -end | ||
| 1209 | - | ||
| 1210 | -function Adv:backDead(enemyId) | ||
| 1211 | - self:pushBackEvent(AdvBackEventType.Dead, {enemyId = enemyId}) | 1209 | +function Adv:backDead(enemyId, exp) |
| 1210 | + self:pushBackEvent(AdvBackEventType.Dead, {enemyId = enemyId, exp = exp}) | ||
| 1212 | end | 1211 | end |
| 1213 | 1212 | ||
| 1214 | function Adv:backTrap() | 1213 | function Adv:backTrap() |
| 1215 | self:pushBackEvent(AdvBackEventType.Trap, {}) | 1214 | self:pushBackEvent(AdvBackEventType.Trap, {}) |
| 1216 | end | 1215 | end |
| 1217 | 1216 | ||
| 1218 | -function Adv:backLayer() | ||
| 1219 | - self:pushBackEvent(AdvBackEventType.Layer, {}) | 1217 | +function Adv:backLayer(status) |
| 1218 | + self:pushBackEvent(AdvBackEventType.Layer, {status = status}) | ||
| 1220 | end | 1219 | end |
| 1221 | 1220 | ||
| 1222 | function Adv:backMapShow() | 1221 | function Adv:backMapShow() |
| @@ -1227,6 +1226,15 @@ function Adv:backChooseArtifact() | @@ -1227,6 +1226,15 @@ function Adv:backChooseArtifact() | ||
| 1227 | self:pushBackEvent(AdvBackEventType.ChooseArtifact, {}) | 1226 | self:pushBackEvent(AdvBackEventType.ChooseArtifact, {}) |
| 1228 | end | 1227 | end |
| 1229 | 1228 | ||
| 1229 | +function Adv:backCost(items) | ||
| 1230 | + self:pushBackEvent(AdvBackEventType.Cost, {items = items}) | ||
| 1231 | +end | ||
| 1232 | + | ||
| 1233 | +function Adv:backUse(items) | ||
| 1234 | + self:pushBackEvent(AdvBackEventType.Use, {items = items}) | ||
| 1235 | +end | ||
| 1236 | + | ||
| 1237 | + | ||
| 1230 | function Adv:scoreChange(scoreType, pms) | 1238 | function Adv:scoreChange(scoreType, pms) |
| 1231 | local cutTypes = {} | 1239 | local cutTypes = {} |
| 1232 | local score = 0 | 1240 | local score = 0 |
src/adv/AdvPlayer.lua
| @@ -415,7 +415,6 @@ function BaseObject:hurt(value, releaser, params) | @@ -415,7 +415,6 @@ function BaseObject:hurt(value, releaser, params) | ||
| 415 | end | 415 | end |
| 416 | 416 | ||
| 417 | self.isDead = true | 417 | self.isDead = true |
| 418 | - self.battle.adv:backDead(self.id) | ||
| 419 | end | 418 | end |
| 420 | self:triggerPassive(Passive.HURT_PERCENT_SELF, {value = value / self.hpMax}) | 419 | self:triggerPassive(Passive.HURT_PERCENT_SELF, {value = value / self.hpMax}) |
| 421 | for _, team in ipairs(self:getTeam(1, true)) do | 420 | for _, team in ipairs(self:getTeam(1, true)) do |
| @@ -580,6 +579,7 @@ function Player:addExp(value) | @@ -580,6 +579,7 @@ function Player:addExp(value) | ||
| 580 | end | 579 | end |
| 581 | self.level = level | 580 | self.level = level |
| 582 | self.exp = newExp | 581 | self.exp = newExp |
| 582 | + return value | ||
| 583 | end | 583 | end |
| 584 | --vtype 0/1 值/% | 584 | --vtype 0/1 值/% |
| 585 | function Player:addBaseAttr(attr, value, vtype) | 585 | function Player:addBaseAttr(attr, value, vtype) |
| @@ -611,6 +611,7 @@ end | @@ -611,6 +611,7 @@ end | ||
| 611 | 611 | ||
| 612 | --cType 0 or nil 值 1 百分比 | 612 | --cType 0 or nil 值 1 百分比 |
| 613 | function Player:changeSp(value, cType) | 613 | function Player:changeSp(value, cType) |
| 614 | + local oldSp = self.sp | ||
| 614 | cType = cType or 0 | 615 | cType = cType or 0 |
| 615 | if cType == 0 then | 616 | if cType == 0 then |
| 616 | self.sp = self.sp + value | 617 | self.sp = self.sp + value |
| @@ -618,7 +619,7 @@ function Player:changeSp(value, cType) | @@ -618,7 +619,7 @@ function Player:changeSp(value, cType) | ||
| 618 | self.sp = self.sp + self.sp * value / 100 | 619 | self.sp = self.sp + self.sp * value / 100 |
| 619 | end | 620 | end |
| 620 | self.sp = math.floor(math.min(self.spMax, math.max(0, self.sp))) | 621 | self.sp = math.floor(math.min(self.spMax, math.max(0, self.sp))) |
| 621 | - self.battle.adv:pushBackEvent(AdvBackEventType.SpChange) | 622 | + self.battle.adv:pushBackEvent(AdvBackEventType.SpChange, {change = self.sp - oldSp}) |
| 622 | end | 623 | end |
| 623 | 624 | ||
| 624 | -- 重新计算 魔法上限 | 625 | -- 重新计算 魔法上限 |
src/adv/AdvTask.lua