Commit 6732f756a424c34a98e24e787f796f15edde31cc
1 parent
286a8f95
玩家升级
Showing
2 changed files
with
27 additions
and
2 deletions
Show diff stats
src/adv/Adv.lua
@@ -604,7 +604,7 @@ function Adv:enemyDead(roomId, blockId, escape) | @@ -604,7 +604,7 @@ function Adv:enemyDead(roomId, blockId, escape) | ||
604 | local enemyId = block.event.id | 604 | local enemyId = block.event.id |
605 | local monsterData = csvdb["event_monsterCsv"][enemyId] | 605 | local monsterData = csvdb["event_monsterCsv"][enemyId] |
606 | self:scoreChange(AdvScoreType.Kill, monsterData.type) | 606 | self:scoreChange(AdvScoreType.Kill, monsterData.type) |
607 | - | 607 | + self.battle.player:addExp(monsterData.exp) |
608 | local item = block.event.item | 608 | local item = block.event.item |
609 | if not item then | 609 | if not item then |
610 | local dropData = csvdb["event_dropCsv"][monsterData.dropid] | 610 | local dropData = csvdb["event_dropCsv"][monsterData.dropid] |
src/adv/AdvPlayer.lua
@@ -431,7 +431,32 @@ function Player:initData(data) | @@ -431,7 +431,32 @@ function Player:initData(data) | ||
431 | end | 431 | end |
432 | 432 | ||
433 | function Player:addExp(value) | 433 | function Player:addExp(value) |
434 | - -- todo | 434 | + local newExp = self.exp + value |
435 | + local level = self.level | ||
436 | + if level >= #csvdb["adv_levelCsv"] then return end | ||
437 | + while true do | ||
438 | + local curData = csvdb["adv_levelCsv"][level] | ||
439 | + if newExp < curData.exp then break end | ||
440 | + level = level + 1 | ||
441 | + newExp = newExp - curData.exp | ||
442 | + if level >= #csvdb["adv_levelCsv"] then break end | ||
443 | + end | ||
444 | + local delta = level - self.level | ||
445 | + if delta > 0 then | ||
446 | + local baseAttr = csvdb["adv_unitCsv"][self.battle.adv.chapterId] | ||
447 | + for _, attr in pairs(AttsEnumEx) do | ||
448 | + if baseAttr[attr] then | ||
449 | + self[attr] = self[attr] + baseAttr[attr] * self.growth * delta | ||
450 | + if attr == "hp" then | ||
451 | + self.hpMax = self.hpMax + baseAttr[attr] * self.growth * delta | ||
452 | + else | ||
453 | + self["_" .. attr] = self["_" .. attr] + baseAttr[attr] * self.growth * delta | ||
454 | + end | ||
455 | + end | ||
456 | + end | ||
457 | + end | ||
458 | + self.level = level | ||
459 | + self.exp = newExp | ||
435 | end | 460 | end |
436 | 461 | ||
437 | --cType 0 or nil 值 1 百分比 | 462 | --cType 0 or nil 值 1 百分比 |