From eee37c8812a000ea39bbef9735687bb5acad9e58 Mon Sep 17 00:00:00 2001 From: zhouhaihai Date: Wed, 15 Jan 2020 14:54:30 +0800 Subject: [PATCH] 楼层数据 --- src/adv/Adv.lua | 10 ++++++++++ src/adv/AdvBattle.lua | 9 ++++----- src/adv/AdvTask.lua | 12 +++++++++--- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/adv/Adv.lua b/src/adv/Adv.lua index fb53376..c864584 100644 --- a/src/adv/Adv.lua +++ b/src/adv/Adv.lua @@ -301,6 +301,12 @@ function Adv:isEndless() return AdvCommon.isEndless(self.chapterId) end +function Adv:getCurFloorData() + if not self.chapterId then return end + local chapter = self.chapterId % 100 + return (csvdb["adv_chapter_floorCsv"][chapter] or {})[self.level] +end + --关卡通关,非层 score < 0 失败 function Adv:over(success, isAllPass) local score = self:getScore() @@ -474,6 +480,10 @@ local function clickOut(self, room, block, params) self:over(true, not self:isEndless() and self.level >= levellimit) else self.battle.player:triggerPassive(Passive.DOWN_LAYER) + local curFloorData = self:getCurFloorData() + if curFloorData then + self:backReward(self:award({[ItemId.AdvPoint] = curFloorData.exp})) + end self:initByChapter(self.chapterId, self.level + 1, true, true) self:backNext() --下一关 end diff --git a/src/adv/AdvBattle.lua b/src/adv/AdvBattle.lua index 516a3ed..1585ad5 100644 --- a/src/adv/AdvBattle.lua +++ b/src/adv/AdvBattle.lua @@ -108,11 +108,10 @@ function Battle:addEnemy(room, block, mapIdx) if not block.event.enemy then local enemyCsv = csvdb["event_monsterCsv"][block.event.id] local enemy = {} - enemy.hp = enemyCsv.hp + enemyCsv.levelhp * self.adv.level - enemy.atk = enemyCsv.atk + enemyCsv.levelatk * self.adv.level - enemy.hit = enemyCsv.hit + enemyCsv.levelhit * self.adv.level - enemy.miss = enemyCsv.miss + enemyCsv.levelmiss * self.adv.level - enemy.def = enemyCsv.def + enemyCsv.leveldef * self.adv.level + local curFloorData = self.adv:getCurFloorData() or {} + for attrName, _ in pairs(AdvAttsEnum) do + enemy[attrName] = enemyCsv[attrName] * curFloorData[attrName] + end enemy.passives = {} for _, id in ipairs(enemyCsv.mapPassive:toArray(true, "=")) do table.insert(enemy.passives, {id = id}) diff --git a/src/adv/AdvTask.lua b/src/adv/AdvTask.lua index 417fee6..8b93138 100644 --- a/src/adv/AdvTask.lua +++ b/src/adv/AdvTask.lua @@ -128,9 +128,15 @@ function AdvTask.bind(Adv) if self.advTask[taskId] and self.advTask[taskId] == -1 then local taskData = csvdb["event_questCsv"][taskId] if not taskData then return end - if taskData.reward == 1 then - reward = self.owner:award(taskData.rewardValue) - end + local curFloorData = self:getCurFloorData() + if not curFloorData then return end + + reward = {[ItemId.AdvPoint] = curFloorData.questAward} + + local item = csvdb["event_dropCsv"][taskData.drop]["range"]:randWeight(true) + reward[item[1]] = (reward[item[1]] or 0) + item[2] + reward = self.owner:award(reward) + self.advTask[taskId] = nil ok = true advTaskChange.t = true -- libgit2 0.21.2