| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- ---------------------------------------------------------
- -- boss逻辑
- ---------------------------------------------------------
- local BossDBLogic = require("boss.BossDBLogic")
- local CombatDefine = require("combat.CombatDefine")
- local CombatLogic = require("combat.CombatLogic")
- local CombatImpl = require("combat.CombatImpl")
- local RoleLogic = require("role.RoleLogic")
- function makeBossHurtNet(net, uuid, hurt)
- if net == nil then return end
- if not RoleLogic.getRoleBaseByUuid(uuid, net.roleBase) then
- return
- end
- net.hurt = hurt or 0
- return true
- end
- function getCombatObjList(bossData, zhandouli)
- if not bossData then return end
- local objList, pet, rolebase = CombatLogic.getMonsterObjList(bossData.monsterOutID, CombatDefine.COMBAT_OBJ_TYPE3)
- if not objList then return end
- for index, obj in pairs(objList) do
- if BossDBLogic.getBossHp(bossData, index) <= 0 then
- objList[index] = nil
- end
- end
- if zhandouli then
- rolebase.zhandouli = zhandouli
- end
- return objList, pet, rolebase
- end
- -- 战斗设置
- function onFightBegin(human, bossData)
- for index = 1, CombatDefine.COMBAT_HERO_CNT do
- local defPos = CombatLogic.getPos(CombatDefine.DEFEND_SIDE, index)
- local defObj = CombatImpl.objList[defPos]
- if defObj ~= nil then -- 更新血量
- local obj = bossData.objList[index]
- if obj and obj.hp then
- defObj.hp = obj.hp
- end
- end
- end
- end
- -- 挑战结果
- function onFightEnd(human, bossData, combatInfo)
- local hurtSum = 0
- local hurtList = {}
- for index = 1, CombatDefine.COMBAT_HERO_CNT do
- local defPos = CombatLogic.getPos(CombatDefine.DEFEND_SIDE, index)
- local defObj = combatInfo.objList[defPos]
- local hurt = BossDBLogic.updateBossHp(bossData, index, defObj)
- hurtSum = hurtSum + hurt
- hurtList[index] = hurt
- end
- if bossData.bossType == BossDBLogic.BOSS_TYPE_UNION then
- -- 公会BOSS 伤害为0 不上榜
- if hurtSum > 0 then
- BossDBLogic.updateBossRecord(bossData, human.db._id, hurtSum)
- end
- else
- BossDBLogic.updateBossRecord(bossData, human.db._id, hurtSum)
- end
- BossDBLogic.updateBossData(bossData)
- return hurtSum, hurtList
- end
- function onFightHurt(human, bossData, combatInfo)
- local hurtSum = 0
- local hurtList = {}
- for index = 1, CombatDefine.COMBAT_HERO_CNT do
- local defPos = CombatLogic.getPos(CombatDefine.DEFEND_SIDE, index)
- local defObj = combatInfo.objList[defPos]
- local hurt = BossDBLogic.updateBossHp(bossData, index, defObj)
- hurtSum = hurtSum + hurt
- hurtList[index] = hurt
- end
- return hurtSum, hurtList
- end
- function updateFightHurt(human, bossData, hurtList, combatInfo)
- local hurtSum = 0
- for index = 1, CombatDefine.COMBAT_HERO_CNT do
- local hurt = hurtList[index]
- if hurt and hurt ~= 0 then
- local defPos = CombatLogic.getPos(CombatDefine.DEFEND_SIDE, index)
- local defObj = combatInfo.objList[defPos]
- local realhurt = BossDBLogic.updateBossHpByHurt(bossData, index, hurt, defObj)
- hurtSum = hurtSum + realhurt
- end
-
- end
- BossDBLogic.updateBossRecord(bossData, human.db._id, hurtSum)
- BossDBLogic.updateBossData(bossData)
- return hurtSum
- end
- function saodangEnd(human, bossData, hurtList)
- local hurtSum = 0
- for index = 1, CombatDefine.COMBAT_HERO_CNT do
- local hurt = hurtList[index]
- if hurt and hurt ~= 0 then
- local realhurt = BossDBLogic.updateBossHpSaoDang(bossData, index, hurt)
- hurtSum = hurtSum + realhurt
- end
-
- end
- BossDBLogic.updateBossRecord(bossData, human.db._id, hurtSum)
- BossDBLogic.updateBossData(bossData)
- return hurtSum
- end
- -- 添加记录点赞
- function giveLikeBossRecord(bossData, uuid)
- BossDBLogic.updateBossRecordLike(bossData, uuid)
- BossDBLogic.updateBossData(bossData)
- return true
- end
|