back_recharge
parent
c5e20dde2b
commit
24c12d6d4f
|
@ -27,6 +27,7 @@ require("Modules.Battle.Logic.SkillManager")
|
|||
require("Modules.Battle.Logic.OutDataManager")
|
||||
require("Modules.Battle.Logic.BattleLogManager")
|
||||
require("Modules.Battle.Logic.Monster.MonsterManager")
|
||||
require("Modules.Battle.Logic.Weapon.FightWeaponManager")
|
||||
require("Modules.Battle.Logic.HardStageCondition")
|
||||
require("Modules.Battle.Logic.HardStageEventManager")
|
||||
require "Modules/Battle/Data/ConfigData"
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -22,6 +22,9 @@ local BuffRegister = {
|
|||
[BuffName.BreakArmor] = "BreakArmor",
|
||||
[BuffName.AddAttack] = "AddAttack",
|
||||
[BuffName.Suppress] = "Suppress",
|
||||
[BuffName.BuDongSign] = "BuDongSign",
|
||||
[BuffName.FalseNoDead] = "FalseNoDead",
|
||||
[BuffName.SuckBlood] = "SuckBlood",
|
||||
}
|
||||
|
||||
|
||||
|
@ -232,7 +235,7 @@ end
|
|||
|
||||
function BuffManager:HasBuff(target, type, checkFunc,caster,dotType)
|
||||
--如果当前是判断燃烧buff and 当前目标是攻击的主目标则直接返回true
|
||||
if type== BuffName.DOT and caster and dotType and dotType==1 and caster.curMainTarget==target then
|
||||
if type== BuffName.DOT and caster and dotType and dotType==1 and (caster.curMainTarget==target or caster.isAllBurn) then
|
||||
return true
|
||||
end
|
||||
if self.buffDic.kvList[type] then
|
||||
|
|
|
@ -2335,7 +2335,7 @@ local effectList = {
|
|||
local pro = args[1]
|
||||
local isBoss=BattleUtil.CheckIsBoss(target)
|
||||
if isBoss then
|
||||
return
|
||||
return
|
||||
end
|
||||
BattleUtil.SeckillHP(skill,caster,target,pro)
|
||||
end,
|
||||
|
@ -2788,6 +2788,11 @@ local effectList = {
|
|||
else
|
||||
buff=Buff.Create(caster, t1, r1,t2)
|
||||
end
|
||||
elseif t1==BuffName.DOT then
|
||||
local treat=floor(caster:GetRoleData(BattlePropList[v1])*v2)
|
||||
buff=Buff.Create(caster, t1, r1,1,t2,treat)
|
||||
elseif t1==BuffName.FalseNoDead then
|
||||
buff=Buff.Create(caster, t1, r1,t2,v1)
|
||||
else
|
||||
buff=Buff.Create(caster, t1, r1,t2)
|
||||
end
|
||||
|
@ -2965,7 +2970,124 @@ local effectList = {
|
|||
|
||||
end)
|
||||
end,
|
||||
|
||||
-- 造成目标[a]*[b]%的间接伤害
|
||||
-- a[属性],b[float]
|
||||
[151] = function(caster, target, args, interval, skill)
|
||||
local pro = args[1]
|
||||
local f1 = args[2]
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
if (pro==12 or pro==13) and BattleUtil.CheckIsBoss(target) then
|
||||
return
|
||||
end
|
||||
local damage = floor(BattleUtil.ErrorCorrection(f1 * target:GetRoleData(BattlePropList[pro])))
|
||||
BattleUtil.FinalDamageCountShield(nil, caster, target, damage)
|
||||
end)
|
||||
end,
|
||||
--直接斩杀剩余所有血量(御甲无效)
|
||||
[152] = function(caster, target, args, interval, skill)
|
||||
local isBoss=BattleUtil.CheckIsBoss(target)
|
||||
if isBoss then
|
||||
return
|
||||
end
|
||||
BattleUtil.Seckill(skill,caster,target)
|
||||
end,
|
||||
--瞬间恢复[a]*[b]%生命,并移除中毒灼烧状态
|
||||
--a[属性],b[float]
|
||||
[153] = function(caster, target, args, interval, skill)
|
||||
local pro1 = args[1]
|
||||
local f1 = args[2]
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
local val = floor(BattleUtil.FP_Mul(target:GetRoleData(BattlePropList[pro1]), f1))
|
||||
BattleUtil.CalTreatNoCrit(caster, target, val,1,skill)
|
||||
BattleLogic.BuffMgr:ClearBuff(target, function (buff)
|
||||
return clearBuffPredicate(buff,5)
|
||||
end)
|
||||
end)
|
||||
end,
|
||||
--瞬间恢复[a]*[b]%生命,并移除中毒灼烧状态
|
||||
--a[属性],b[float]
|
||||
[154] = function(caster, target, args, interval, skill)
|
||||
local pro1 = args[1]
|
||||
local f1 = args[2]
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
local val = floor(BattleUtil.FP_Mul(target:GetRoleData(BattlePropList[pro1]), f1))
|
||||
BattleUtil.CalTreatNoCrit(caster, target, val,1,skill)
|
||||
BattleLogic.BuffMgr:ClearBuff(target, function (buff)
|
||||
return clearBuffPredicate(buff,5)
|
||||
end)
|
||||
end)
|
||||
end,
|
||||
--神兵[a]属性[b]%+对位英雄损失血量[c]%的[d]伤害
|
||||
--a[属性],b[float],c[int],d[int]
|
||||
[155] = function(caster, target, args, interval, skill)
|
||||
local pro = args[1]
|
||||
local f1 = args[2]
|
||||
local f2 = args[3]
|
||||
local type = args[4]
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
local val = floor(BattleUtil.FP_Mul(caster:GetRoleData(BattlePropList[pro]), f1))
|
||||
if skill.ownHero then
|
||||
local addValue=(skill.ownHero:GetRoleData(RoleDataName.MaxHp)-skill.ownHero:GetRoleData(RoleDataName.Hp))*f2
|
||||
val=val+floor(addValue)
|
||||
end
|
||||
BattleUtil.FinalDamage(skill, caster, target,val, nil, 0, nil, true)
|
||||
end)
|
||||
end,
|
||||
-- 造成[a]*[b]%的间接伤害
|
||||
-- a[属性],b[float]
|
||||
[156] = function(caster, target, args, interval, skill)
|
||||
local pro = args[1]
|
||||
local f1 = args[2]
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
if (pro==12 or pro==13) and BattleUtil.CheckIsBoss(target) then
|
||||
return
|
||||
end
|
||||
local damage = floor(BattleUtil.ErrorCorrection(f1 * caster:GetRoleData(BattlePropList[pro])))
|
||||
BattleUtil.FinalDamage(nil, caster, target, damage, nil, 0, nil, true)
|
||||
end)
|
||||
end,
|
||||
-- 造成[a]*[b]%的伤害,吸取所有有仇视效果的[c]%生命上限*效果层数的伤害,如果神兵对应英雄回满血,多回的血造成伤害
|
||||
-- a[属性],b[float],c[float]
|
||||
[157] = function(caster, target, args, interval, skill)
|
||||
local pro = args[1]
|
||||
local f1 = args[2]
|
||||
local v1 = args[3]
|
||||
BattleLogic.WaitForTrigger(interval, function ()
|
||||
if skill.ownHero==nil then
|
||||
return
|
||||
end
|
||||
local damage = floor(BattleUtil.ErrorCorrection(f1 * caster:GetRoleData(BattlePropList[pro])))
|
||||
local arr=RoleManager.Query(function(v) return v.camp~=caster.camp end)
|
||||
local allAddHp=0
|
||||
local addDamage=0
|
||||
addDamage=damage
|
||||
if arr then
|
||||
for i = 1, #arr do
|
||||
--BattleLogic.BuffMgr:HasBuff(arr[i], BuffName.BreakArmor, function (buff) return buff.signType == 5 end)
|
||||
local list=BattleLogic.BuffMgr:GetAllBuffByFunc(function(buff) return buff.target==arr[i] and buff.type==BuffName.BreakArmor and buff.signType==5 end)
|
||||
local len=BattleUtil.LengthOfTable(list)
|
||||
if len>0 then
|
||||
local addhp=floor(arr[i]:GetRoleData(RoleDataName.MaxHp)*v1)*len
|
||||
allAddHp=allAddHp+ addhp
|
||||
--LogError("吸取的血量==="..addhp.." 层树=="..len)
|
||||
BattleUtil.FinalDamage(nil,caster,arr[i],addhp)
|
||||
BattleLogic.BuffMgr:ClearBuff(arr[i], function(buff)
|
||||
return buff.type == BuffName.BreakArmor and buff.signType==5
|
||||
end)
|
||||
end
|
||||
end
|
||||
local hp=skill.ownHero:GetRoleData(RoleDataName.MaxHp)-skill.ownHero:GetRoleData(RoleDataName.Hp)
|
||||
--LogError("damage=="..addDamage.." alladdhp=="..allAddHp.." hp=="..hp)
|
||||
if hp>0 then
|
||||
BattleUtil.FinalTreat(caster,skill.ownHero,hp)
|
||||
end
|
||||
if allAddHp>hp then
|
||||
addDamage=addDamage+allAddHp-hp
|
||||
end
|
||||
end
|
||||
BattleUtil.FinalDamage(nil, caster, target,addDamage, nil, 0, nil, true)
|
||||
end)
|
||||
end,
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -7886,19 +7886,25 @@ local passivityList = {
|
|||
end
|
||||
BattleLogic.Event:AddEvent(BattleEventName.RoleRealDead, onBattleRoleDead,nil,nil,role)
|
||||
end,
|
||||
--死亡后有[a]%概率[b]%血量复活,并回复[c]点怒气
|
||||
--a[float],b[float],c[int]
|
||||
--死亡后有[a]%概率[b]%血量复活,并回复[c]点怒气,最多触发[d]次(d不填为无限次)
|
||||
--a[float],b[float],c[int],d[int]
|
||||
[329]=function (role,args,id,judge)
|
||||
local p1=args[1]
|
||||
local p2=args[2]
|
||||
local num=args[3]
|
||||
local time=args[4]
|
||||
local aaa=0
|
||||
local onRoleRealDead = function(deadRole)
|
||||
--如果死亡的不是自身
|
||||
if deadRole~=role then
|
||||
return
|
||||
end
|
||||
if time and aaa>=time then
|
||||
return
|
||||
end
|
||||
BattleUtil.RandomAction(p1, function ()
|
||||
deadRole:SetRelive(p2,role)
|
||||
aaa=aaa+1
|
||||
BattleUtil.CalRage(role, role,num,CountTypeName.Add)
|
||||
end)
|
||||
end
|
||||
|
@ -11510,28 +11516,70 @@ local passivityList = {
|
|||
if t6 then
|
||||
table.insert(types,t6)
|
||||
end
|
||||
|
||||
-- local heros={}
|
||||
-- local onSkillCast = function(skill)
|
||||
-- if skill and not skill.isTriggerJudge and judge==1 then
|
||||
-- return
|
||||
-- end
|
||||
-- if skill.type == BattleSkillType.Special then
|
||||
-- local list = skill:GetDirectTargets()
|
||||
-- for key, value in pairs(list) do
|
||||
-- table.insert(heros,list)
|
||||
-- end
|
||||
-- LogError("#heros=========="..#heros)
|
||||
-- end
|
||||
-- end
|
||||
|
||||
-- role.Event:AddEvent(BattleEventName.SkillCast, onSkillCast,nil,nil,role)
|
||||
|
||||
|
||||
-- 释放技能后
|
||||
local onSkillEnd = function(skill)
|
||||
-- local onSkillEnd = function(skill)
|
||||
-- if skill and not skill.isTriggerJudge and judge==1 then
|
||||
-- return
|
||||
-- end
|
||||
-- local heros
|
||||
-- if skill.type == BattleSkillType.Special then
|
||||
-- heros = skill:GetDirectTargetsNoMiss()
|
||||
-- end
|
||||
-- if heros then
|
||||
-- for i = 1, #heros do
|
||||
-- -- BattleUtil.CalRage(role, list[i], i1, CountTypeName.Sub)
|
||||
-- local isAdd=false
|
||||
-- for key, value in pairs(types) do
|
||||
-- if not isAdd and BattleLogic.BuffMgr:HasBuff(heros[i],value) then
|
||||
-- BattleUtil.CalRage(role, heros[i], v1, CountTypeName.Sub)
|
||||
-- isAdd=true
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
-- heros={}
|
||||
-- end
|
||||
-- end
|
||||
-- role.Event:AddEvent(BattleEventName.SkillCastEnd, onSkillEnd,nil,nil,role)
|
||||
|
||||
|
||||
local OnPassiveDamaging = function(damagingFunc, defRole, damage,skill)
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
if skill.type == BattleSkillType.Special then
|
||||
local list = skill:GetDirectTargetsNoMiss()
|
||||
if list then
|
||||
for i = 1, #list do
|
||||
-- BattleUtil.CalRage(role, list[i], i1, CountTypeName.Sub)
|
||||
local isAdd=false
|
||||
for key, value in pairs(types) do
|
||||
if not isAdd and BattleLogic.BuffMgr:HasBuff(list[i],value) then
|
||||
BattleUtil.CalRage(role, list[i], v1, CountTypeName.Sub)
|
||||
isAdd=true
|
||||
end
|
||||
end
|
||||
end
|
||||
if skill==nil then
|
||||
return
|
||||
end
|
||||
if skill.type~=BattleSkillType.Special then
|
||||
return
|
||||
end
|
||||
local isAdd=false
|
||||
for key, value in pairs(types) do
|
||||
if not isAdd and BattleLogic.BuffMgr:HasBuff(defRole,value) then
|
||||
BattleUtil.CalRage(role, defRole, v1, CountTypeName.Sub)
|
||||
isAdd=true
|
||||
end
|
||||
end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.SkillCastEnd, onSkillEnd,nil,nil,role)
|
||||
|
||||
role.Event:AddEvent(BattleEventName.PassiveDamaging, OnPassiveDamaging,nil,nil,role)
|
||||
end,
|
||||
--敌方处于[a]类型[b]状态的单位死亡,有[c]*己方[d]阵营存活数的概率,将效果转移,持续[e]回合给目标周围有[f][g][h][i]类型效果的神将
|
||||
--a[int],b[int],c[int],d[int],e[float],f[int]
|
||||
|
@ -11655,5 +11703,518 @@ local passivityList = {
|
|||
end
|
||||
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundEnd, onRoundChange,nil,nil,role)
|
||||
end,
|
||||
--攻击附加自身[a]属性[b]%的间接伤害,由受击目标平分
|
||||
--a[int],b[float]
|
||||
[446]=function(role,args,id,judge)
|
||||
local p1=args[1]
|
||||
local v1=args[2]
|
||||
local onSkillEnd = function(skill)
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
|
||||
local list = skill:GetDirectTargetsNoMiss()
|
||||
local len=#list
|
||||
if list and len>0 then
|
||||
local damage = floor(BattleUtil.FP_Mul(role:GetRoleData(BattlePropList[p1]), v1)/len)
|
||||
for i = 1, #list do
|
||||
BattleUtil.FinalDamage(nil, role, list[i],damage)
|
||||
end
|
||||
end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.SkillCastEnd, onSkillEnd,nil,nil,role)
|
||||
end,
|
||||
--每回合开始时,以自身[a]的[b]%为全体神将添加御甲,可叠加,持续至战斗结束
|
||||
--a[int],b[float]
|
||||
[447]=function (role,args,id,judge)
|
||||
local p1=args[1]
|
||||
local v1=args[2]
|
||||
local onRoundStart= function(round)
|
||||
if role:IsDead() then
|
||||
return
|
||||
end
|
||||
local list = RoleManager.Query(function(v) return v.camp == role.camp end)
|
||||
for i = 1, #list do
|
||||
local val = floor(BattleUtil.FP_Mul(v1, role:GetRoleData(BattlePropList[p1])))
|
||||
--如果身上有御甲就添加御甲的值
|
||||
BattleUtil.AddBlood(list[i],val)
|
||||
end
|
||||
end
|
||||
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundStart,onRoundStart,nil,nil,role)
|
||||
end,
|
||||
|
||||
-- 技能直接伤害的[a]%治疗友方生命最少[b]名队友,并恢复目标[c]属性[d]%的血量
|
||||
-- a[float],b[int],c[int],d[float]
|
||||
[448] = function(role, args,id,judge)
|
||||
local f1 = args[1]
|
||||
local num = args[2]
|
||||
local p1 = args[3]
|
||||
local v1 = args[4]
|
||||
local allDamage = 0
|
||||
local OnHit = function(atkRole, damage, bCrit, finalDmg, damageType, skill)
|
||||
if skill and skill.type == BattleSkillType.Special then
|
||||
--吸血修改,finaldag 改成 damage by:王振兴 2020/08/17
|
||||
allDamage = allDamage + damage
|
||||
end
|
||||
end
|
||||
local function onSkillCast(skill)
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
if skill.type == BattleSkillType.Special then
|
||||
allDamage = 0
|
||||
role.Event:AddEvent(BattleEventName.RoleHit, OnHit,nil,nil,role)
|
||||
end
|
||||
end
|
||||
local function onSkillCastEnd(skill)
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
if skill.type == BattleSkillType.Special then
|
||||
role.Event:RemoveEvent(BattleEventName.RoleHit, OnHit)
|
||||
local arr = RoleManager.NoOrder(function (r) return r.camp == role.camp and r.deadFilter end)
|
||||
local len=#arr
|
||||
if arr==nil or len==0 then
|
||||
return
|
||||
end
|
||||
if num>len then
|
||||
num=len
|
||||
end
|
||||
BattleUtil.SortByHpFactor(arr, 1)
|
||||
for i = 1, num do
|
||||
-- 检测技能伤害<E4BCA4><E5AEB3><EFBFBD>疗加成
|
||||
local f = BattleUtil.CheckSkillDamageHeal(f1, role, arr[i])
|
||||
-- 治疗血量最低队友实际伤害的f1%
|
||||
BattleUtil.ApplyTreat(role, arr[i], floor(BattleUtil.ErrorCorrection(allDamage*f)))
|
||||
local dd = floor(BattleUtil.ErrorCorrection(arr[i]:GetRoleData(BattlePropList[p1])*v1))
|
||||
BattleUtil.FinalTreat(role, arr[i], dd)
|
||||
end
|
||||
-- 清空伤害记录
|
||||
allDamage = 0
|
||||
end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.SkillCast, onSkillCast,nil,nil,role)
|
||||
role.Event:AddEvent(BattleEventName.SkillCastEnd, onSkillCastEnd,nil,nil,role)
|
||||
end,
|
||||
--受到直接伤害有[a]%的概率给全体神将回复[b]点怒气
|
||||
--a[float],b[int]
|
||||
[449]=function (role,args,id,judge)
|
||||
local p1=args[1]
|
||||
local v1=args[2]
|
||||
local isTrigger=true
|
||||
local onBeHit = function(caster,damage, bCrit, finalDmg, damageType,skill)
|
||||
if skill==nil then
|
||||
return
|
||||
end
|
||||
if isTrigger==false then
|
||||
return
|
||||
end
|
||||
BattleUtil.RandomAction(p1,function()
|
||||
local list = RoleManager.Query(function(v) return v.camp == role.camp end)
|
||||
for i = 1, #list do
|
||||
local r = list[i]
|
||||
if r and not r:IsDead() then
|
||||
BattleUtil.CalRage(role,r,v1,CountTypeName.Add)
|
||||
isTrigger=false
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.RoleBeHit, onBeHit,nil,nil,role)
|
||||
|
||||
local onRoleTurnStart=function()
|
||||
isTrigger=true
|
||||
end
|
||||
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundStart,onRoleTurnStart,nil,nil,role)
|
||||
end,
|
||||
--主动治疗己方神将时,治疗如果溢出,溢出血量的[a]%转化为御甲
|
||||
--a[float]
|
||||
[450] = function(role, args,id,judge)
|
||||
local pro = args[1]
|
||||
local onRoleTreat=function(target,realTreat,treat)
|
||||
local hp=treat- realTreat
|
||||
if hp>0 then
|
||||
local value=floor(hp*pro)
|
||||
BattleUtil.AddBlood(target,value)
|
||||
end
|
||||
end
|
||||
local OnSkillCast = function(skill)
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
|
||||
role.Event:AddEvent(BattleEventName.RoleTreat, onRoleTreat,nil,nil,role)
|
||||
|
||||
end
|
||||
local OnSkillCastEnd = function(skill)
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
role.Event:RemoveEvent(BattleEventName.RoleTreat,onRoleTreat,nil,nil,role)
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.SkillCast, OnSkillCast,nil,nil,role)
|
||||
role.Event:AddEvent(BattleEventName.SkillCastEnd, OnSkillCastEnd,nil,nil,role)
|
||||
end,
|
||||
--[a]%概率免疫减怒
|
||||
--a[float]
|
||||
[451]=function(role,args)
|
||||
local pro=args[1]
|
||||
BattleUtil.RandomAction(pro,function()
|
||||
role.isImmuneReduceRage=true
|
||||
end)
|
||||
end,
|
||||
-- 释放技能后[a]%概率再次释放技能,伤害为初始技能伤害[b]%,释放次数每增加1,概率是之前的[c]%;控制概率为之前[d]%
|
||||
-- a[float],b[float],c[float],d[float]
|
||||
[452] = function(role, args,id,judge)
|
||||
local p1 = args[1]
|
||||
local p2 = args[2]
|
||||
local p3 = args[3]
|
||||
local p4 = args[4]
|
||||
local pro=p1
|
||||
local triggerTime=0
|
||||
|
||||
local onSkillEnd = function(skill)
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
if skill.type~=BattleSkillType.Special then
|
||||
return
|
||||
end
|
||||
pro=p1*(p3^triggerTime)
|
||||
local isRand=BattleUtil.RandomAction(pro,function()
|
||||
triggerTime=triggerTime+1
|
||||
role:AddSkill(BattleSkillType.Special, false, false, nil)
|
||||
end)
|
||||
--连击中断,概率和次数回调
|
||||
if not isRand then
|
||||
pro=p1
|
||||
triggerTime=0
|
||||
end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.SkillCastEnd, onSkillEnd,nil,nil,role)
|
||||
|
||||
local OnPassiveDamaging = function(damagingFunc, defRole, damage)
|
||||
if triggerTime==0 then
|
||||
return
|
||||
end
|
||||
local dd = BattleUtil.CountValue(damage,p2, CountTypeName.SubPencent) - damage
|
||||
damagingFunc(-floor(dd))
|
||||
end
|
||||
|
||||
role.Event:AddEvent(BattleEventName.PassiveDamaging, OnPassiveDamaging,nil,nil,role)
|
||||
|
||||
local onPassiveRandomControl = function(func, ctrl2,target,rand)
|
||||
if triggerTime==0 then
|
||||
return
|
||||
end
|
||||
local subValue=floor(rand-rand*p4)
|
||||
if func then func(subValue, CountTypeName.Sub) end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.PassiveRandomControl, onPassiveRandomControl,nil,nil,role)
|
||||
|
||||
end,
|
||||
|
||||
-- 技能,普攻治疗治疗有[a]%概率解除目标的禁疗效果
|
||||
-- a[float]
|
||||
[453] = function(role, args,id,judge)
|
||||
local pro = args[1]
|
||||
local curSkill = nil
|
||||
local disposeCtrlNoHeal = function(caster,target)
|
||||
if caster==role and target.ctrl_noheal then
|
||||
BattleUtil.RandomAction(pro,function()
|
||||
BattleLogic.BuffMgr:ClearBuff(target, function (buff)
|
||||
return buff.type == BuffName.Control and buff.ctrlType==4
|
||||
end)
|
||||
end)
|
||||
end
|
||||
end
|
||||
local OnSkillCast = function(skill)
|
||||
curSkill=skill
|
||||
BattleLogic.Event:AddEvent(BattleEventName.DisposeRoleCtrl_noheal,disposeCtrlNoHeal)
|
||||
end
|
||||
local OnSkillCastEnd = function(skill)
|
||||
curSkill=nil
|
||||
BattleLogic.Event:RemoveEvent(BattleEventName.DisposeRoleCtrl_noheal,disposeCtrlNoHeal)
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.SkillCast, OnSkillCast)
|
||||
role.Event:AddEvent(BattleEventName.SkillCastEnd, OnSkillCastEnd)
|
||||
end,
|
||||
--视敌方全体为燃烧
|
||||
[454]=function(role, args,id,judge)
|
||||
role.isAllBurn=true
|
||||
end,
|
||||
-- 释放技能后[a]%*目标数量的概率再次释放技能,伤害为初始技能伤害[b]%,追加技能是否触[c]发特性;如果目标处于[d]效果[e]状态,额外对其造成[f]%的间接伤害
|
||||
-- a[float],b[float],c[int 0:不触发 1:触发 ],d[int],e[int],f[float] (d,e,f不填不触发)
|
||||
[455] = function(role, args,id,judge)
|
||||
local p1 = args[1]
|
||||
local p2 = args[2]
|
||||
local p3 = args[3]
|
||||
local t1 = args[4]
|
||||
local t2 = args[5]
|
||||
local v1 = args[6]
|
||||
local pro=p1
|
||||
local triggerTime=0
|
||||
|
||||
local onSkillEnd = function(skill)
|
||||
triggerTime=0
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
if skill.type~=BattleSkillType.Special or skill.isAdd then
|
||||
return
|
||||
end
|
||||
pro=p1*#skill:GetDirectTargetsNoExile()
|
||||
local isTrigger=false
|
||||
if p3==1 then
|
||||
isTrigger=true
|
||||
end
|
||||
--LogError("pro=="..pro.." p1=="..p1.." len=="..#skill:GetDirectTargetsNoExile())
|
||||
local isRand=BattleUtil.RandomAction(pro,function()
|
||||
triggerTime=triggerTime+1
|
||||
role:AddSkill(BattleSkillType.Special, false, true, nil,isTrigger)
|
||||
end)
|
||||
--连击中断,概率和次数回调
|
||||
if not isRand then
|
||||
--pro=p1
|
||||
triggerTime=0
|
||||
end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.SkillCastEnd, onSkillEnd,nil,nil,role)
|
||||
|
||||
local OnPassiveDamaging = function(damagingFunc, defRole, damage,skill)
|
||||
if triggerTime==0 then
|
||||
return
|
||||
end
|
||||
local dd = BattleUtil.CountValue(damage,(1-p2), CountTypeName.SubPencent) - damage
|
||||
--LogError("dd========="..dd)
|
||||
damagingFunc(-floor(dd))
|
||||
-- triggerTime=0
|
||||
if t1 and t2 and v1 then
|
||||
if BattleLogic.BuffMgr:HasBuff(defRole, t1, function (buff)
|
||||
if t1==BuffName.DOT then
|
||||
return buff.damageType==t2
|
||||
end
|
||||
end) then
|
||||
local aaa=floor(damage*v1)
|
||||
BattleUtil.FinalDamageCountShield(nil,role,defRole,aaa)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.PassiveDamaging, OnPassiveDamaging,nil,nil,role)
|
||||
|
||||
|
||||
end,
|
||||
--技能必定暴击
|
||||
[456]=function(role, args,id,judge)
|
||||
|
||||
local crit=false
|
||||
local OnSkillCast = function(skill)
|
||||
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
if skill.type==BattleSkillType.Special or skill.type==BattleSkillType.Extra then
|
||||
crit=role.mustCrit
|
||||
role.mustCrit = true
|
||||
end
|
||||
end
|
||||
local OnSkillCastEnd = function(skill)
|
||||
if skill.type==BattleSkillType.Special or skill.type==BattleSkillType.Extra then
|
||||
role.mustCrit = crit
|
||||
end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.SkillCast, OnSkillCast)
|
||||
role.Event:AddEvent(BattleEventName.SkillCastEnd, OnSkillCastEnd)
|
||||
end,
|
||||
--如果技能目标处于[a]效果[b]状态,必定命中
|
||||
--a[int],b[int]
|
||||
[457]=function(role, args,id,judge)
|
||||
local t1=args[1]
|
||||
local t2=args[2]
|
||||
local crit=false
|
||||
local OnSkillCast = function(skill)
|
||||
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
if skill.type==BattleSkillType.Special or skill.type==BattleSkillType.Extra then
|
||||
local arr=skill:GetDirectTargets()
|
||||
for i = 1, #arr do
|
||||
if BattleLogic.BuffMgr:HasBuff(arr[i], t1, function (buff)
|
||||
if t1==BuffName.DOT then
|
||||
return buff.damageType==t2
|
||||
end
|
||||
end)
|
||||
then
|
||||
arr[i].beMustHit=true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
local OnSkillCastEnd = function(skill)
|
||||
if skill.type==BattleSkillType.Special or skill.type==BattleSkillType.Extra then
|
||||
local arr=skill:GetDirectTargetsNoMiss()
|
||||
for i = 1, #arr do
|
||||
if BattleLogic.BuffMgr:HasBuff(arr[i], t1, function (buff)
|
||||
if t1==BuffName.DOT then
|
||||
return buff.damageType==t2
|
||||
end
|
||||
end)
|
||||
then
|
||||
arr[i].beMustHit=false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.SkillCastBefore, OnSkillCast)
|
||||
role.Event:AddEvent(BattleEventName.SkillCastEnd, OnSkillCastEnd)
|
||||
end,
|
||||
--技能额外造成目标[a]属性 ([b]+10/目标数量)% 的伤害。
|
||||
--a[int 属性id] b[float]
|
||||
[458]=function(role,args,id,judge)
|
||||
local f1 = args[1]
|
||||
local dt = args[2]
|
||||
-- 直接伤害后
|
||||
local onPassiveDamaging = function(func, defRole, damage,skill)
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
--观音,这个被动只有额外技能才能触发 by:王振兴 2021/1/21 17:48
|
||||
if skill and (skill.type == BattleSkillType.Extra or skill.type == BattleSkillType.Special ) then
|
||||
--如果是boss 并且额外伤害是根据最大生命则返回
|
||||
if (f1==12 or f1==13) and BattleUtil.CheckIsBoss(defRole) then
|
||||
return
|
||||
end
|
||||
local num=#skill:GetDirectTargetsNoExile()
|
||||
local val = floor(BattleUtil.FP_Mul((dt+10/num)/100, defRole:GetRoleData(BattlePropList[f1])))
|
||||
BattleUtil.FinalDamageCountShield(nil,role,defRole,val)
|
||||
end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.PassiveDamaging, onPassiveDamaging,nil,nil,role)
|
||||
end,
|
||||
-- 敌方神将处于[a]效果[b]状态,己方神将对其造成伤害增加[c]%;额外造成[d]属性[e]%的间接伤害,每回合同一神将最多受到[f]次额外伤害
|
||||
-- a[int] b[int] c[float] d[int] e[float] f[int]
|
||||
[459] = function(role, args,id,judge)
|
||||
local t1 = args[1]
|
||||
local t2 = args[2]
|
||||
local f2 = args[3]
|
||||
local p1 = args[4]
|
||||
local p2 = args[5]
|
||||
local num = args[6]
|
||||
local function onPassiveDamaging(damagingFunc, atkRole, defRole, damage,skill,skilldotType, bCrit,damageType, dotType,isDirect)
|
||||
--不是真实伤害
|
||||
if not skill and not isDirect then
|
||||
return
|
||||
end
|
||||
if atkRole.camp==role.camp and BattleLogic.BuffMgr:HasBuff(defRole, t1, function (buff) return true end) then
|
||||
local dd = BattleUtil.CountValue(damage, f2, CountTypeName.AddPencent) - damage
|
||||
damagingFunc(-floor(BattleUtil.ErrorCorrection(dd)))
|
||||
if p1 and p2 then
|
||||
if defRole.suppressTime>=num then
|
||||
return
|
||||
end
|
||||
if (p1==12 or p1==13) and BattleUtil.CheckIsBoss(defRole) then
|
||||
return
|
||||
end
|
||||
local val = floor(BattleUtil.FP_Mul(p2, defRole:GetRoleData(BattlePropList[p1])))
|
||||
BattleUtil.FinalDamageCountShield(nil,atkRole,defRole,val)
|
||||
defRole.suppressTime=defRole.suppressTime+1
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
BattleLogic.Event:AddEvent(BattleEventName.PassiveDamaging, onPassiveDamaging,nil,nil,role)
|
||||
|
||||
local function onRoundChange()
|
||||
local list=RoleManager.QueryIncludeExile(function(v) return true end,true)
|
||||
for key, value in pairs(list) do
|
||||
value.suppressTime=0
|
||||
end
|
||||
end
|
||||
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundChange, onRoundChange,nil,nil,role)
|
||||
end,
|
||||
-- 受到[a]攻击有[b]%概率使攻击者[c][d],持续[e]回合,参数1[f],参数2[g],参数3[h]
|
||||
-- a[int 攻击类型],b[float],c[int],d[int],e[int],f[int/float],g[int/float],h[int/float] (a:0 所有攻击 1:只限制技能伤害)
|
||||
[460] = function(role, args)
|
||||
local type=args[1]
|
||||
local f1 = args[2]
|
||||
local t1 = args[3]
|
||||
local t2 = args[4]
|
||||
local i1 = args[5]
|
||||
local v1 = args[6]
|
||||
local v2 = args[7]
|
||||
local v3 = args[8]
|
||||
-- 技能后后
|
||||
local onRoleBeHit = function(caster,damage, bCrit, finalDmg, damageType, skill)
|
||||
--屏蔽相同阵营
|
||||
if caster.camp==role.camp then
|
||||
return
|
||||
end
|
||||
--检测技能
|
||||
if type==1 and (not skill or skill.type==BattleSkillType.Normal)then
|
||||
return
|
||||
end
|
||||
local buff=nil
|
||||
if t1==BuffName.Suppress then
|
||||
buff=Buff.Create(role,t1,i1)
|
||||
end
|
||||
if buff then
|
||||
BattleUtil.RandomAction(f1,function()
|
||||
caster:AddBuff(buff)
|
||||
end)
|
||||
end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.RoleBeHit, onRoleBeHit,nil,nil,role)
|
||||
end,
|
||||
--击杀目标为我方所有神将回复死亡目标生命上限*[a]% /我方剩余神将
|
||||
--a[float]
|
||||
[461] = function(role, args,id,judge)
|
||||
local pro = args[1]
|
||||
local OnDead = function(defRole, damage, bCrit, finalDmg, damageType, skill)
|
||||
if skill==nil or skill.ownHero==nil then
|
||||
return
|
||||
end
|
||||
if defRole:IsDead()==false or skill.ownHero:IsDead() then
|
||||
return
|
||||
end
|
||||
local arr=RoleManager.Query(function(v) return v.camp==role.camp end)
|
||||
--LogError("role:GetRoleData(RoleDataName.maxHp)==".. defRole:GetRoleData(RoleDataName.maxHp).." len== "..#arr)
|
||||
local val = floor(BattleUtil.FP_Mul(pro, defRole:GetRoleData(RoleDataName.MaxHp))/#arr)
|
||||
for i=1, #arr do
|
||||
BattleUtil.ApplyTreat(role, arr[i], val)
|
||||
end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.RoleHit, OnDead,nil,nil,role)
|
||||
end,
|
||||
|
||||
--受到直接伤害,[a]%概率给目标上[b]类型[c]效果,持续[d]回合,
|
||||
--a[float],b[int],c[int],d[int]
|
||||
[462] = function(role, args)
|
||||
local pro = args[1]
|
||||
local t1 = args[2]
|
||||
local t2 = args[3]
|
||||
local r1 = args[4]
|
||||
local trigger=nil
|
||||
local OnBeHit = function(atkRole, damage, bCrit, finalDmg, damageType,skill)
|
||||
|
||||
if skill then
|
||||
BattleUtil.RandomAction(pro,function()
|
||||
local isBoss=BattleUtil.CheckIsBoss(atkRole)
|
||||
if isBoss then
|
||||
return
|
||||
end
|
||||
atkRole:AddBuff(Buff.Create(role,t1,r1,t2,1,2))
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
trigger=RoleManager.GetRoleByCampAndPos(role.camp,role.position)
|
||||
if trigger then
|
||||
trigger.Event:AddEvent(BattleEventName.RoleBeHit, OnBeHit,nil,nil,role)
|
||||
end
|
||||
|
||||
end,
|
||||
}
|
||||
return passivityList
|
||||
|
|
|
@ -37,6 +37,8 @@ BattleLogic.GameDeltaTime = 1 / BattleLogic.GameFrameRate
|
|||
BattleLogic.TotalOrder = 0
|
||||
--当前波次
|
||||
BattleLogic.CurOrder = 0
|
||||
--当前回合触发总次数(添加buff,伤害,治疗)
|
||||
local curRoundTriggerTime=0
|
||||
local actionPool = BattleObjectPool.New(function ()
|
||||
return { 0, 0 }
|
||||
end)
|
||||
|
@ -46,6 +48,9 @@ local rolePool = BattleObjectPool.New(function ()
|
|||
return RoleLogic.New()
|
||||
end)
|
||||
|
||||
function BattleLogic.AddRoundTriggerTime()
|
||||
curRoundTriggerTime=curRoundTriggerTime+1
|
||||
end
|
||||
function BattleLogic.Init(data, _userData, maxRound)
|
||||
if BattleLogic.IsOpenBattleRecord then
|
||||
record = {}
|
||||
|
@ -70,9 +75,9 @@ function BattleLogic.Init(data, _userData, maxRound)
|
|||
BattleLogic.Result = -1
|
||||
-- 日志管理放到前面初始化
|
||||
BattleLogManager.Init(fightData, userData, maxRound)
|
||||
|
||||
MonsterManager.Init()
|
||||
RoleManager.Init()
|
||||
MonsterManager.Init()
|
||||
FightWeaponManager.Init()
|
||||
SkillManager.Init()
|
||||
OutDataManager.Init(fightData)
|
||||
PassiveManager.Init()
|
||||
|
@ -96,7 +101,9 @@ function BattleLogic.Init(data, _userData, maxRound)
|
|||
allEnemyDamage=allEnemyDamage+damage
|
||||
end
|
||||
end)
|
||||
|
||||
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundChange,function()
|
||||
curRoundTriggerTime=0
|
||||
end)
|
||||
|
||||
end
|
||||
|
||||
|
@ -163,6 +170,14 @@ function BattleLogic.InitOrder()
|
|||
MonsterManager.AddMonster(playerMonsterList[i])
|
||||
end
|
||||
end
|
||||
|
||||
local playerWeaPonList = fightData.playerData.weaponList
|
||||
if playerWeaPonList then
|
||||
for i=1, #playerWeaPonList do
|
||||
--LogError("创建一个神兵")
|
||||
FightWeaponManager.AddWeapon(playerWeaPonList[i])
|
||||
end
|
||||
end
|
||||
|
||||
local enemyMonsterList = fightData.enemyData[1].monsterList
|
||||
if enemyMonsterList then
|
||||
|
@ -170,6 +185,13 @@ function BattleLogic.InitOrder()
|
|||
MonsterManager.AddMonster(enemyMonsterList[i])
|
||||
end
|
||||
end
|
||||
local enemyWeaponList = fightData.enemyData[1].weaponList
|
||||
if enemyWeaponList then
|
||||
for i=1, #enemyWeaponList do
|
||||
LogError("创建一个神兵")
|
||||
FightWeaponManager.AddWeapon(enemyWeaponList[i])
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
RoleManager.ClearEnemy()
|
||||
|
@ -182,7 +204,16 @@ function BattleLogic.InitOrder()
|
|||
local enemyMonsterList = orderList.monsterList
|
||||
if enemyMonsterList then
|
||||
for i=1, #enemyMonsterList do
|
||||
MonsterManager.AddMonster(enemyMonsterList[i])
|
||||
MonsterManager.AddMonster(enemyMonsterList[i])
|
||||
end
|
||||
end
|
||||
|
||||
FightWeaponManager.ClearEnemy()
|
||||
local enemyWeaponList = orderList.weaponList
|
||||
if enemyWeaponList then
|
||||
for i=1, #enemyWeaponList do
|
||||
--LogError("创建一个神兵")
|
||||
FightWeaponManager.AddWeapon(enemyWeaponList[i])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -481,6 +512,11 @@ function BattleLogic.Update()
|
|||
BattleLogic.BattleEnd(-1)
|
||||
return
|
||||
end
|
||||
if curRoundTriggerTime>2000 then
|
||||
--assert(false, "Battle Round Time Out !!!")
|
||||
BattleLogic.BattleEnd(-2)
|
||||
return
|
||||
end
|
||||
local roleResult = RoleManager.GetResult()
|
||||
if roleResult == 0 then
|
||||
BattleLogic.BattleEnd(0)
|
||||
|
@ -570,6 +606,7 @@ function BattleLogic.BattleEnd(result)
|
|||
local v1 = HardStageCondition.CheckCondition(harConfig.ConditionType,harConfig.ConditionValue)
|
||||
table.insert(levelStarRecord,hardStageConfig.ConditionValue[i])
|
||||
table.insert(levelStarRecord,v1)
|
||||
print("k=="..hardStageConfig.ConditionValue[i].." v=="..v1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -616,6 +653,7 @@ end
|
|||
function BattleLogic.Clear()
|
||||
-- 清空角色
|
||||
RoleManager.Clear()
|
||||
MSkillManager.Clear()
|
||||
-- 清空事件
|
||||
while tbActionList.size > 0 do
|
||||
actionPool:Put(tbActionList.buffer[tbActionList.size])
|
||||
|
|
|
@ -2,7 +2,7 @@ BreakArmor = Buff:New()
|
|||
|
||||
--初始化Buff,通过传入一些自定义参数控制成长相关的数值
|
||||
function BreakArmor:SetData(...)
|
||||
self.signType, --1 破军 2.迷魂 3. 4.主角状态
|
||||
self.signType, --1 破军 2.迷魂 3. 4.主角状态 5.仇视
|
||||
self.signValue1,
|
||||
self.signValue2=...
|
||||
-- 刷新排序等级
|
||||
|
|
|
@ -25,7 +25,7 @@ end
|
|||
|
||||
--初始化后调用一次
|
||||
function DOT:OnStart()
|
||||
if self.caster.isTeam or self.caster.type == BattleUnitType.Player then
|
||||
if self.caster.isTeam or self.caster.type == BattleUnitType.Player or self.caster.type == BattleUnitType.Weapon then
|
||||
self.isRealDamage = true
|
||||
end
|
||||
end
|
||||
|
|
|
@ -43,6 +43,7 @@ BattleEventName = {
|
|||
BattleEnd = indexAdd(),
|
||||
AddRole = indexAdd(),
|
||||
AddMonster = indexAdd(),
|
||||
AddWeapon = indexAdd(),
|
||||
RemoveRole = indexAdd(),
|
||||
RemoveMonster = indexAdd(),
|
||||
MpChanged = indexAdd(),
|
||||
|
@ -201,7 +202,8 @@ BattleEventName = {
|
|||
CheckDamageIsImmune = indexAdd(),--检测伤害是否免疫
|
||||
BloodValueGetZero = indexAdd(), --御甲值清零
|
||||
RoleAddBuffCheckBan = indexAdd(),--角色添加buff检测是否被禁止
|
||||
|
||||
WeaponSkillCast = indexAdd(), --神兵技能释放
|
||||
CheckFalseNoDead = indexAdd(), --检测伪不灭
|
||||
}
|
||||
|
||||
BattleMaxFrame = 1000000
|
||||
|
@ -287,6 +289,9 @@ BuffName = {
|
|||
BreakArmor = 17,
|
||||
AddAttack = 18,
|
||||
Suppress = 19,
|
||||
BuDongSign = 20,
|
||||
FalseNoDead=21, --伪不灭
|
||||
SuckBlood = 22, --吸血
|
||||
}
|
||||
|
||||
DotType = {
|
||||
|
@ -375,6 +380,7 @@ BattleUnitType = {
|
|||
Role = 1,
|
||||
Monster = 2,
|
||||
Player = 3,
|
||||
Weapon = 4, --武器
|
||||
}
|
||||
|
||||
BattleRoleElementType = {
|
||||
|
|
|
@ -238,13 +238,13 @@ function BattleUtil.SortByRage(arr, sort)
|
|||
if r1==r2 then
|
||||
return a.position>b.position
|
||||
else
|
||||
return r1 < r2
|
||||
return r1 > r2
|
||||
end
|
||||
else
|
||||
if r1==r2 then
|
||||
return a.position>b.position
|
||||
else
|
||||
return r1 > r2
|
||||
return r1 < r2
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
@ -320,13 +320,15 @@ function BattleUtil.ChooseTarget(role, chooseId,queryType)
|
|||
return {arr[1]}
|
||||
end
|
||||
return {RoleManager.GetAggro(role)}
|
||||
elseif chooseType == 5 then --神兵对应的英雄
|
||||
local weaponer=RoleManager.GetRoleByCampAndPos(role.camp,role.position)
|
||||
return {weaponer}
|
||||
else
|
||||
arr = RoleManager.Query()
|
||||
end
|
||||
|
||||
|
||||
--选择范围
|
||||
if chooseLimit == 0 then --选择全体不做任何操作
|
||||
|
||||
elseif chooseLimit == 1 then-- 前排
|
||||
local tempArr = BattleUtil.ChooseFRow(arr)
|
||||
if #tempArr == 0 then -- 没有选择后排
|
||||
|
@ -432,13 +434,13 @@ function BattleUtil.ChooseTarget(role, chooseId,queryType)
|
|||
BattleUtil.SortByProp(tempArr,RoleDataName.Attack,sort)
|
||||
arr=tempArr
|
||||
elseif chooseWeight ==10 then --剩余血量百分比低于25%且生命绝对值最小
|
||||
return BattleUtil.GetHpPctLessThanPctHero(arr,0.25)
|
||||
return {BattleUtil.GetHpPctLessThanPctHero(arr,0.25)}
|
||||
elseif chooseWeight ==11 then --剩余血量百分比低于32%且生命绝对值最小
|
||||
return BattleUtil.GetHpPctLessThanPctHero(arr,0.32)
|
||||
return {BattleUtil.GetHpPctLessThanPctHero(arr,0.32)}
|
||||
elseif chooseWeight ==12 then --剩余血量百分比低于40%且生命绝对值最小
|
||||
return BattleUtil.GetHpPctLessThanPctHero(arr,0.40)
|
||||
return {BattleUtil.GetHpPctLessThanPctHero(arr,0.40)}
|
||||
elseif chooseWeight ==13 then --剩余血量百分比低于50%且生命绝对值最小
|
||||
return BattleUtil.GetHpPctLessThanPctHero(arr,0.50)
|
||||
return {BattleUtil.GetHpPctLessThanPctHero(arr,0.50)}
|
||||
elseif chooseWeight ==14 then --我方战位最靠前的单位 的对位及相邻
|
||||
local list=nil
|
||||
list=RoleManager.Query(function (r) return r.camp == role.camp end)
|
||||
|
@ -464,6 +466,12 @@ function BattleUtil.ChooseTarget(role, chooseId,queryType)
|
|||
--BattleUtil.SortByProp(arr, RoleDataName.Hp, sort)
|
||||
BattleUtil.SortByRage(arr, sort)
|
||||
end
|
||||
elseif chooseWeight ==18 then --剩余血量百分比低于30%且生命绝对值最小
|
||||
return {BattleUtil.GetHpPctLessThanPctHero(arr,0.30)}
|
||||
elseif chooseWeight ==19 then --剩余血量百分比低于35%且生命绝对值最小
|
||||
return {BattleUtil.GetHpPctLessThanPctHero(arr,0.35)}
|
||||
elseif chooseWeight ==20 then --剩余血量百分比低于35%且生命绝对值最小
|
||||
return {BattleUtil.GetHpPctLessThanPctHero(arr,0.45)}
|
||||
end
|
||||
local finalArr = {}
|
||||
if num == 0 then
|
||||
|
@ -486,10 +494,10 @@ end
|
|||
function BattleUtil.GetHpPctLessThanPctHero(arr,pct)
|
||||
local hp=0
|
||||
local hero=nil
|
||||
for i = 1, #arr[i] do
|
||||
for i = 1, #arr do
|
||||
local aaa=arr[i]
|
||||
local curHp=aaa:GetRoleData(RoleDataName.Hp)
|
||||
local r1 = curHp / aaa:GetRoleData(RoleDataName.MaxHp)
|
||||
local r1 = curHp /aaa:GetRoleData(RoleDataName.MaxHp)
|
||||
if r1<pct then
|
||||
if hero==nil then
|
||||
hero=aaa
|
||||
|
@ -576,10 +584,18 @@ end
|
|||
-- 秒杀
|
||||
function BattleUtil.Seckill(skill, atkRole, defRole)
|
||||
-- 灵兽无效
|
||||
if defRole.type == BattleUnitType.Monster or defRole.type == BattleUnitType.Player then
|
||||
if defRole.type == BattleUnitType.Monster or defRole.type == BattleUnitType.Player or defRole.type == BattleUnitType.Weapon then
|
||||
return
|
||||
end
|
||||
--检测伪不灭
|
||||
|
||||
local damage = defRole:GetRoleData(RoleDataName.Hp)
|
||||
local realDamage=damage
|
||||
local damagingFunc = function(dmgDeduction)
|
||||
realDamage = dmgDeduction
|
||||
damage=realDamage
|
||||
end
|
||||
defRole.Event:DispatchEvent(BattleEventName.CheckFalseNoDead, damagingFunc, atkRole, realDamage, skill)
|
||||
local finalDmg = defRole.data:SubValue(RoleDataName.Hp, damage)
|
||||
if finalDmg >= 0 then
|
||||
if defRole:GetRoleData(RoleDataName.Hp) <= 0 and not defRole:IsDead() then
|
||||
|
@ -608,10 +624,16 @@ end
|
|||
-- 秒杀定额血量
|
||||
function BattleUtil.SeckillHP(skill, atkRole, defRole, pro)
|
||||
-- 灵兽无效
|
||||
if defRole.type == BattleUnitType.Monster or defRole.type == BattleUnitType.Player then
|
||||
if defRole.type == BattleUnitType.Monster or defRole.type == BattleUnitType.Player or defRole.type == BattleUnitType.Weapon then
|
||||
return
|
||||
end
|
||||
local damage = floor(BattleUtil.FP_Mul(defRole:GetRoleData(RoleDataName.MaxHp),pro))
|
||||
local realDamage=damage
|
||||
local damagingFunc = function(dmgDeduction)
|
||||
realDamage = dmgDeduction
|
||||
damage=realDamage
|
||||
end
|
||||
defRole.Event:DispatchEvent(BattleEventName.CheckFalseNoDead, damagingFunc, atkRole, realDamage, skill)
|
||||
local finalDmg = defRole.data:SubValue(RoleDataName.Hp, damage)
|
||||
if finalDmg >= 0 then
|
||||
if defRole:GetRoleData(RoleDataName.Hp) <= 0 and not defRole:IsDead() then
|
||||
|
@ -642,7 +664,7 @@ function BattleUtil.ApplyDamage(skill, atkRole, defRole, damage, bCrit, damageTy
|
|||
return
|
||||
end
|
||||
-- 灵兽无效
|
||||
if defRole.type == BattleUnitType.Monster or defRole.type == BattleUnitType.Player then
|
||||
if defRole.type == BattleUnitType.Monster or defRole.type == BattleUnitType.Player or defRole.type == BattleUnitType.Weapon then
|
||||
return
|
||||
end
|
||||
|
||||
|
@ -708,8 +730,8 @@ function BattleUtil.ApplyDamageNoPassive(skill, atkRole, defRole, damage, bCrit,
|
|||
end
|
||||
--计算血量防护
|
||||
local realDamage=damage
|
||||
--血量防护只会防直接伤害
|
||||
if defRole.bloodShield and skill then
|
||||
--血量防护只会防直接伤害 也能防护间接伤害 2023/01/11
|
||||
if defRole.bloodShield then
|
||||
realDamage=math.abs(defRole.bloodShield:CountBloodValue(damage,atkRole))
|
||||
-- damage=realDamage
|
||||
end
|
||||
|
@ -726,6 +748,12 @@ function BattleUtil.ApplyDamageNoPassive(skill, atkRole, defRole, damage, bCrit,
|
|||
damage=0
|
||||
end
|
||||
--御甲过滤后的伤害只会处理扣血 by: wangzhenxing shihongyi 2021/09/27
|
||||
--检测伪不灭
|
||||
local damagingFunc = function(dmgDeduction)
|
||||
realDamage = dmgDeduction
|
||||
damage=realDamage
|
||||
end
|
||||
defRole.Event:DispatchEvent(BattleEventName.CheckFalseNoDead, damagingFunc, atkRole, realDamage, skill, dotType, bCrit, damageType,isDirect)
|
||||
local finalDmg = defRole.data:SubValue(RoleDataName.Hp,realDamage)
|
||||
if finalDmg >= 0 then
|
||||
if defRole:GetRoleData(RoleDataName.Hp) <= 0 and not defRole:IsDead() then
|
||||
|
@ -860,7 +888,7 @@ end
|
|||
|
||||
function BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageType, dotType,isDirect)
|
||||
-- 灵兽无效
|
||||
if defRole.type == BattleUnitType.Monster or defRole.type == BattleUnitType.Player then
|
||||
if defRole.type == BattleUnitType.Monster or defRole.type == BattleUnitType.Player or defRole.type == BattleUnitType.Weapon then
|
||||
return
|
||||
end
|
||||
if damage < 0 then damage = 0 end
|
||||
|
@ -870,8 +898,8 @@ function BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageTy
|
|||
end
|
||||
--计算血量防护
|
||||
local realDamage=damage
|
||||
--血量防护只会防直接伤害
|
||||
if defRole.bloodShield and skill then
|
||||
--血量防护只会防直接伤害 也能防护间接伤害 2023/01/11
|
||||
if defRole.bloodShield then
|
||||
realDamage=math.abs(defRole.bloodShield:CountBloodValue(damage,atkRole))
|
||||
-- damage=realDamage
|
||||
end
|
||||
|
@ -887,6 +915,12 @@ function BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageTy
|
|||
realDamage=0
|
||||
damage=0
|
||||
end
|
||||
--检测伪不灭
|
||||
local damagingFunc = function(dmgDeduction)
|
||||
realDamage = dmgDeduction
|
||||
damage=realDamage
|
||||
end
|
||||
defRole.Event:DispatchEvent(BattleEventName.CheckFalseNoDead, damagingFunc, atkRole, realDamage, skill, dotType, bCrit, damageType,isDirect)
|
||||
--御甲过滤后的伤害只会处理扣血 by: wangzhenxing shihongyi 2021/09/27
|
||||
local finalDmg = defRole.data:SubValue(RoleDataName.Hp,realDamage)
|
||||
if finalDmg >= 0 then
|
||||
|
@ -934,7 +968,7 @@ function BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageTy
|
|||
"damage", damage,
|
||||
"dotType", tostring(dotType)
|
||||
)
|
||||
|
||||
BattleLogic.AddRoundTriggerTime()
|
||||
return finalDmg
|
||||
end
|
||||
|
||||
|
@ -953,8 +987,8 @@ function BattleUtil.FinalDamageCountShield(skill, atkRole, defRole, damage, bCri
|
|||
end
|
||||
--计算血量防护
|
||||
local realDamage=damage
|
||||
--血量防护只会防直接伤害
|
||||
if defRole.bloodShield and skill then
|
||||
--血量防护只会防直接伤害 也能防护间接伤害 2023/01/11
|
||||
if defRole.bloodShield then
|
||||
realDamage=math.abs(defRole.bloodShield:CountBloodValue(damage,atkRole))
|
||||
-- damage=realDamage
|
||||
end
|
||||
|
@ -972,6 +1006,12 @@ function BattleUtil.FinalDamageCountShield(skill, atkRole, defRole, damage, bCri
|
|||
realDamage=0
|
||||
damage=0
|
||||
end
|
||||
--检测伪不灭
|
||||
local damagingFunc = function(dmgDeduction)
|
||||
realDamage = dmgDeduction
|
||||
damage=realDamage
|
||||
end
|
||||
defRole.Event:DispatchEvent(BattleEventName.CheckFalseNoDead, damagingFunc, atkRole, realDamage, skill, dotType, bCrit, damageType,isDirect)
|
||||
local finalDmg = defRole.data:SubValue(RoleDataName.Hp,realDamage)
|
||||
if finalDmg >= 0 then
|
||||
if defRole:GetRoleData(RoleDataName.Hp) <= 0 and not defRole:IsDead() then
|
||||
|
@ -1200,7 +1240,7 @@ function BattleUtil.CalTreat(castRole, targetRole, value, baseFactor,skill)
|
|||
return
|
||||
end
|
||||
-- 灵兽无效
|
||||
if targetRole.type == BattleUnitType.Monster or targetRole.type == BattleUnitType.Player then
|
||||
if targetRole.type == BattleUnitType.Monster or targetRole.type == BattleUnitType.Player or targetRole.type == BattleUnitType.Weapon then
|
||||
return
|
||||
end
|
||||
BattleLogic.Event:DispatchEvent(BattleEventName.DisposeRoleCtrl_noheal, castRole,targetRole)
|
||||
|
@ -1211,12 +1251,13 @@ function BattleUtil.CalTreat(castRole, targetRole, value, baseFactor,skill)
|
|||
end
|
||||
return
|
||||
end
|
||||
local mustCrit=castRole.mustCrit
|
||||
-- 是否暴击: 暴击率 = 自身暴击率 - 对方抗暴率
|
||||
local bCrit = false
|
||||
local critRandom = Random.Range01()
|
||||
local critCondition = castRole:GetRoleData(RoleDataName.Crit)
|
||||
bCrit = critRandom <= critCondition
|
||||
bCrit = bCrit or targetRole.isFlagCrit == true -- 必定暴击
|
||||
bCrit =mustCrit or bCrit or targetRole.isFlagCrit == true -- 必定暴击
|
||||
-- 计算暴伤害系数
|
||||
local critDamageFactor = 1
|
||||
--计算暴击
|
||||
|
@ -1385,6 +1426,7 @@ function BattleUtil.ApplyTreat(castRole, targetRole, value, baseFactor,critDamag
|
|||
"tpos", targetRole.position,
|
||||
"value", value
|
||||
)
|
||||
BattleLogic.AddRoundTriggerTime()
|
||||
end
|
||||
|
||||
|
||||
|
@ -1406,7 +1448,7 @@ function BattleUtil.CheckIsHit(atkRole, defRole,skill)
|
|||
BattleLogic.Event:DispatchEvent(BattleEventName.PassiveChangeRoleHit,addHitFunc,atkRole,defRole)
|
||||
local hitCondition = clamp(atkRole:GetRoleData(RoleDataName.Hit)+addHit - defRole:GetRoleData(RoleDataName.Dodge), 0, 1)
|
||||
isHit = hitRandom <= hitCondition
|
||||
return mustHit or isHit
|
||||
return mustHit or defRole.beMustHit or isHit
|
||||
end
|
||||
|
||||
|
||||
|
@ -1426,6 +1468,7 @@ function BattleUtil.AddBlood(target,value)
|
|||
else
|
||||
target.Event:DispatchEvent(BattleEventName.ShowHintText, BattleArtFontType.Blood)
|
||||
end
|
||||
BattleLogic.AddRoundTriggerTime()
|
||||
end
|
||||
|
||||
|
||||
|
@ -1458,7 +1501,7 @@ function BattleUtil.RandomControl(rand, ctrl, caster, target, round,skill)
|
|||
table.insert(cl, {v, ct})
|
||||
end
|
||||
end
|
||||
caster.Event:DispatchEvent(BattleEventName.PassiveRandomControl, _CallBack, ctrl, target)
|
||||
caster.Event:DispatchEvent(BattleEventName.PassiveRandomControl, _CallBack, ctrl, target,rand)
|
||||
target.Event:DispatchEvent(BattleEventName.PassiveBeRandomControl, _CallBack, ctrl, target)
|
||||
BattleLogic.Event:DispatchEvent(BattleEventName.PassiveBeRandomControl, _CallBack, ctrl,caster,target)
|
||||
rand = BattleUtil.CountChangeList(rand, cl)
|
||||
|
|
|
@ -8,7 +8,10 @@ local this = MonsterManager
|
|||
function MonsterManager.Init()
|
||||
this.monsterList = {}
|
||||
-- 初始化灵兽技能管理
|
||||
MSkillManager.Init()
|
||||
if MSkillManager.isInit==false then
|
||||
--LogError("初始化 ====================mskikkmanager")
|
||||
MSkillManager.Init()
|
||||
end
|
||||
end
|
||||
|
||||
function MonsterManager.AddMonster(data)
|
||||
|
|
|
@ -16,6 +16,12 @@ function MSkill:Init(owner, group, index, skillData,playerSkillIndex)
|
|||
self.isAdd = false
|
||||
self.isRage = false
|
||||
self.type = BattleSkillType.Monster
|
||||
--LogError("当前灵兽类型====================="..owner.type)
|
||||
--LogError("owner.camp=="..owner.camp.." owner.position=="..owner.position)
|
||||
-- if owner.type==BattleUnitType.Weapon then
|
||||
|
||||
self.ownHero=RoleManager.GetRoleByCampAndPos(owner.camp,owner.position)
|
||||
-- end
|
||||
--后端传过来的数据最后一个是主角技能
|
||||
if owner.position==100 then
|
||||
if playerSkillIndex==self.owner.skillNum then
|
||||
|
@ -85,6 +91,7 @@ function MSkill:Cast(func)
|
|||
end
|
||||
|
||||
-- 释放技能开始
|
||||
--LogError("灵兽释放技能")
|
||||
self.owner.Event:DispatchEvent(BattleEventName.SkillCast, self)
|
||||
BattleLogic.Event:DispatchEvent(BattleEventName.SkillCast, self)
|
||||
-- 只对效果1的目标发送事件,效果1是技能的直接伤害目标
|
||||
|
|
|
@ -5,7 +5,9 @@ require("Modules.Battle.Logic.Monster.MonsterSkill.MSkillGroup")
|
|||
MSkillManager = {}
|
||||
local this = MSkillManager
|
||||
|
||||
this.isInit=false
|
||||
function this.Init()
|
||||
this.isInit=true
|
||||
this.MSkillGroupList = {} -- 技能组列表
|
||||
this.MSkillList = {} -- 技能列表
|
||||
MTrigger.Init()
|
||||
|
@ -45,5 +47,9 @@ function this.CreateMSkill(monster, group, index, skilldata,groupIndex)
|
|||
|
||||
return this.MSkillList[position][groupIndex][index]
|
||||
end
|
||||
function this.Clear()
|
||||
this.isInit=false
|
||||
end
|
||||
|
||||
|
||||
return MSkillManager
|
|
@ -98,6 +98,7 @@ function RoleLogic:Init(uid, data, position)
|
|||
self.bloodShield = nil
|
||||
self.IsCanAddSkill = true -- 是否可以追加技能
|
||||
self.mustHit=false --必定命中
|
||||
self.beMustHit=false --必定被命中
|
||||
self.mustCrit=false --必定暴击
|
||||
self.isBanBlood=false --是否禁止上御甲
|
||||
self.isImmuneAllReduceShield = false --免疫敌方无敌盾(敌方无敌盾对自己无效)
|
||||
|
@ -106,6 +107,8 @@ function RoleLogic:Init(uid, data, position)
|
|||
self.addAttack=0 --添加的攻击
|
||||
self.isNormalAttackAddRage=true --普攻是否回复怒气
|
||||
self.curMainTarget=nil --当前主目标
|
||||
self.isAllBurn = false --是否视敌方全体为燃烧
|
||||
self.suppressTime = 0 --被压制的次数
|
||||
self.passiveList = {}
|
||||
if data.passivity and #data.passivity > 0 then
|
||||
--排序363类型的排在前面
|
||||
|
@ -410,6 +413,7 @@ function RoleLogic:AddBuff(buff,_ignorePro)
|
|||
end
|
||||
end
|
||||
BattleLogic.BuffMgr:AddBuff(self, buff)
|
||||
BattleLogic.AddRoundTriggerTime()
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -433,7 +437,8 @@ function RoleLogic:IsAvailable(skill)
|
|||
return false
|
||||
end
|
||||
--角色没有真正死亡 在 被眩晕/沉默的 情况下 任然能释放死亡技能
|
||||
if (self.ctrl_dizzy or self.ctrl_slient) and self:IsDead() and skill and skill.type==BattleSkillType.DeadSkill then
|
||||
--(self.ctrl_dizzy or self.ctrl_slient) and
|
||||
if self:IsDead() and skill and skill.type==BattleSkillType.DeadSkill then
|
||||
return true
|
||||
end
|
||||
-- 眩晕 -- 死亡
|
||||
|
|
|
@ -160,6 +160,10 @@ function this.GetRole(camp, pos)
|
|||
return PosList[pos + camp*6]
|
||||
end
|
||||
|
||||
function this.GetRoleByCampAndPos(camp, pos)
|
||||
return PosList[pos + camp*6]
|
||||
end
|
||||
|
||||
-- 获取某阵营所有角色
|
||||
function this.GetRoleByCamp(camp)
|
||||
local list = {}
|
||||
|
|
|
@ -91,7 +91,7 @@ function Skill:Cast(func)
|
|||
--技能的施法时间计算,根据当前目标id关联的持续时间,取其中时间最长的一个
|
||||
local duration = self.hitTime + self.continueTime
|
||||
-- 结算时间向后延长0.2秒,避免在效果结算完成前就结束了技能释放
|
||||
local time=0.8
|
||||
local time=1.2
|
||||
-- if self.id==1282 then
|
||||
-- time=1
|
||||
-- end
|
||||
|
@ -148,7 +148,7 @@ end
|
|||
function Skill:EndSkill()
|
||||
-- 技能后摇
|
||||
-- 技能结束后摇后结束技能释放
|
||||
BattleLogic.WaitForTrigger(0.3, function()
|
||||
BattleLogic.WaitForTrigger(0.5, function()
|
||||
-- 结束回调
|
||||
self.isTriggePassivity=false
|
||||
self.triggerPassivityId={}
|
||||
|
|
|
@ -1,256 +1,42 @@
|
|||
v1.0.115
|
||||
1.添加被动444,445
|
||||
v1.0.114
|
||||
1.被动273,189,184修改
|
||||
master_zh_test同步数据表2022_09_02_16_53_59
|
||||
master_zh_test同步数据表2022_08_24_16_07_52
|
||||
v1.0.113
|
||||
1.被动387 437修改
|
||||
master_zh_test同步数据表2022_08_17_18_26_38
|
||||
master_zh_test同步数据表2022_08_10_18_33_50
|
||||
master_zh_test同步数据表2022_08_10_17_37_10
|
||||
master_zh_test同步数据表2022_08_10_15_22_09
|
||||
master_zh_test同步数据表2022_08_03_17_06_59
|
||||
v1.0.112
|
||||
1.online_special 同步到zh_test
|
||||
v1.0.111
|
||||
1.438修改
|
||||
v1.0.110
|
||||
1.新增神印
|
||||
master_zh_test同步数据表2022_03_29_17_06_53
|
||||
master_zh_test同步数据表2022_03_22_11_35_14
|
||||
master_zh_test同步数据表2022_03_22_11_35_01
|
||||
master_zh_test同步数据表2022_03_21_16_48_11
|
||||
v1.0.109
|
||||
1.新增神系英雄技能被动
|
||||
master_zh_test同步数据表2022_03_14_18_15_06
|
||||
master_zh_test同步数据表2022_03_14_17_24_10
|
||||
v1.0.108
|
||||
1.新增429 430 431被动
|
||||
master_zh_test同步数据表2022_03_08_16_52_49
|
||||
v1.0.107
|
||||
1.新增427 428被动
|
||||
master_zh_test同步数据表2022_03_07_17_48_07
|
||||
master_zh_test同步数据表2022_03_02_15_24_08
|
||||
v1.0.106
|
||||
1.新增425 426被动
|
||||
master_zh_test同步数据表2022_03_01_15_02_06
|
||||
v1.0.105
|
||||
1.新增425 426被动
|
||||
v1.0.104
|
||||
1.被动375修改
|
||||
master_zh_test同步数据表2022_02_22_19_20_35
|
||||
master_zh_test同步数据表2022_02_22_18_59_21
|
||||
v1.0.103
|
||||
1.被动226 423 424修改
|
||||
master_zh_test同步数据表2022_02_22_10_34_06
|
||||
master_zh_test同步数据表2022_02_15_15_03_42
|
||||
v1.0.102
|
||||
1.效果108修改
|
||||
2.被动356修改 新增422
|
||||
master_zh_test同步数据表2022_02_08_14_14_42
|
||||
v1.0.101
|
||||
1.修复姑获鸟神魂五对所有人生效的问题
|
||||
v1.0.100
|
||||
1.御甲初始化修改
|
||||
master_zh_test同步数据表2022_01_24_18_51_19
|
||||
v1.0.99
|
||||
1.御甲显示修改
|
||||
v1.0.98
|
||||
1.被动414修改
|
||||
master_zh_test同步数据表2022_01_24_10_59_41
|
||||
master_zh_test同步数据表2022_01_18_15_41_40
|
||||
v1.0.97
|
||||
1.护盾buff修改
|
||||
master_zh_test同步数据表2022_01_17_16_56_13
|
||||
master_zh_test同步数据表2022_01_17_16_30_59
|
||||
master_zh_test同步数据表2022_01_15_19_12_17
|
||||
v1.0.96
|
||||
1.被动417-421 白金法宝
|
||||
master_zh_test同步数据表2022_01_11_16_23_47
|
||||
master_zh_test同步数据表2022_01_10_18_57_57
|
||||
v1.0.95
|
||||
1.新增被动414-417
|
||||
2.添加御甲修改
|
||||
v1.0.94
|
||||
1.被动283修改
|
||||
v1.0.93
|
||||
1.战斗结束获取队伍剩余角色信息接口修改
|
||||
master_zh_test同步数据表2021_12_28_09_56_49
|
||||
master_zh_test同步数据表2021_12_24_18_32_21
|
||||
v1.0.92
|
||||
1.新增412被动 56被动修改
|
||||
master_zh_test同步数据表2021_12_21_18_13_54
|
||||
v1.0.91
|
||||
1.护盾buff修改
|
||||
2.鲸吞魂印修改
|
||||
v1.0.90
|
||||
1、修复RoleManager table.removebyvalue方法空报错
|
||||
master_zh_test同步数据表2021_12_14_12_03_26
|
||||
v1.0.89
|
||||
1.第五期神魂
|
||||
2.第二期变身卡
|
||||
master_zh_test同步数据表2021_12_13_18_06_46
|
||||
v1.0.88
|
||||
1.被动257修改
|
||||
2.不灭修改
|
||||
v1.0.87
|
||||
1.被动257修改
|
||||
master_zh_test同步数据表2021_12_07_17_09_58
|
||||
master_zh_test同步数据表2021_12_07_16_56_46
|
||||
v1.0.86
|
||||
1 战斗驱动逻辑修改 回合转换添加延时减半
|
||||
2.被动257修改
|
||||
v1.0.85
|
||||
1 战斗驱动逻辑修改 回合转换添加延时减半
|
||||
v1.0.84
|
||||
1 战斗驱动逻辑修改 回合转换添加延时
|
||||
master_zh_test同步数据表2021_12_06_19_02_28
|
||||
v1.0.83
|
||||
1 第四期神魂添加
|
||||
master_zh_test同步数据表2021_11_30_12_06_26
|
||||
v1.0.82
|
||||
1 目标选择逻辑添加
|
||||
master_zh_test同步数据表2021_11_29_19_48_14
|
||||
v1.0.81
|
||||
1、效果137修改
|
||||
master_zh_test同步数据表2021_11_27_22_26_12
|
||||
v1.0.80
|
||||
1、同步战斗逻辑
|
||||
master_zh_test同步数据表2021_11_23_11_29_17
|
||||
v1.0.79
|
||||
1、被动391修改 我方流血显示修改
|
||||
master_zh_test同步数据表2021_11_22_18_00_26
|
||||
v1.0.78
|
||||
1、被动112 258 360修改提交
|
||||
2. 伤害公式修改
|
||||
3.战斗超时 pvp添加战斗类型
|
||||
v1.0.77
|
||||
1、第三批神魂提交
|
||||
v1.0.76
|
||||
1、修复前后端战斗数据格式不一致导致的结果不一致
|
||||
master_zh_test同步数据表2021_11_16_11_07_25
|
||||
v1.0.75
|
||||
1,添加不处理增伤的伤害接口
|
||||
master_zh_test同步数据表2021_11_15_17_10_47
|
||||
v1.0.74
|
||||
1,第二期神魂技能
|
||||
master_zh_test同步数据表2021_11_08_18_01_19
|
||||
v1.0.73
|
||||
1,被动285修改
|
||||
master_zh_test同步数据表2021_11_08_17_48_59
|
||||
v1.0.72
|
||||
1,第一期神魂技能
|
||||
v1.0.71
|
||||
1,灵兽技能检测添加初始化
|
||||
2.追加技能特效修改
|
||||
v1.0.70
|
||||
1、添加神魂被动技能
|
||||
master_zh_test同步数据表2021_11_01_14_07_31
|
||||
master_zh_test同步数据表2021_10_26_10_10_26
|
||||
master_zh_test同步数据表2021_10_25_18_57_36
|
||||
v1.0.69
|
||||
1、战斗公式修改
|
||||
master_zh_test同步数据表2021_10_22_18_57_18
|
||||
v1.0.68
|
||||
1、添加主角技能
|
||||
2. 被动199修改
|
||||
master_zh_test同步数据表2021_10_18_11_00_42
|
||||
master_zh_test同步数据表2021_10_16_19_07_28
|
||||
master_zh_test同步数据表2021_10_16_19_06_48
|
||||
v1.0.67
|
||||
1、被动344添加空判断
|
||||
2. 战斗力公式修改
|
||||
master_zh_test同步数据表2021_10_12_15_58_23
|
||||
master_zh_test同步数据表2021_10_12_10_25_47
|
||||
master_zh_test同步数据表2021_10_11_18_25_43
|
||||
v1.0.66
|
||||
1、被动312修改
|
||||
master_zh_test同步数据表2021_10_09_18_47_41
|
||||
master_zh_test同步数据表2021_10_09_18_46_50
|
||||
v1.0.65
|
||||
1、被动116 258 281 312 344 250修改
|
||||
2. 精卫借的怒气不会回复怒气
|
||||
3. 添加不处理增伤被动的方法
|
||||
master_zh_test同步数据表2021_09_28_17_45_03
|
||||
v1.0.64
|
||||
1、353 351 137 被动修改
|
||||
2. 添加获取没有出发不灭的目标
|
||||
master_zh_test同步数据表2021_09_27_18_41_38
|
||||
v1.0.63
|
||||
1、353被动修改
|
||||
v1.0.62
|
||||
1、添加御甲buff
|
||||
2.添加最后一期紫府神印,添加白金装备被动 觉醒被动修改
|
||||
master_zh_test同步数据表2021_09_26_20_35_14
|
||||
master_zh_test同步数据表2021_09_18_21_14_36
|
||||
master_zh_test同步数据表2021_09_18_18_42_35
|
||||
1. 同步战斗
|
||||
v1.0.61
|
||||
1、技能是否能释放 添加是否有技能目标判断
|
||||
2.被动196 200 188 修改
|
||||
master_zh_test同步数据表2021_09_17_16_21_53
|
||||
master_zh_test同步数据表2021_09_15_20_05_28
|
||||
master_zh_test同步数据表2021_09_15_14_23_26
|
||||
master_zh_test同步数据表2021_09_14_15_46_46
|
||||
master_zh_test同步数据表2021_09_14_11_51_05
|
||||
1. 同步战斗
|
||||
v1.0.60
|
||||
1、被动56修改
|
||||
master_zh_test同步数据表2021_09_11_18_04_19
|
||||
1. 同步战斗
|
||||
v1.0.59
|
||||
1、被动261 修改
|
||||
master_zh_test同步数据表2021_09_10_18_24_51
|
||||
|
||||
1. 同步战斗
|
||||
v1.0.58
|
||||
1、修复方法缺失报错
|
||||
1. 被动414修改
|
||||
2.御甲显示修改
|
||||
v1.0.57
|
||||
1、尝试修复孙悟空大招不会增加伤害的问题
|
||||
2、添加用于debug的log
|
||||
master_zh_test同步数据表2021_09_07_11_00_31
|
||||
1. 护盾buff修改
|
||||
v1.0.56
|
||||
1.选生命百分比最少目标逻辑修改 去掉有不灭单位
|
||||
2. 死亡不把怒气显示清空
|
||||
3.被动99 307 选目标逻辑修改
|
||||
1. 被动417-421
|
||||
v1.0.55
|
||||
1.被动263 269 274 332 112 145 修改
|
||||
2. 添加战斗日志
|
||||
v1.0.54
|
||||
1. 被动91 被动115 160修改
|
||||
2. Dot类buff清除逻辑修改
|
||||
master_zh_test同步数据表2021_08_27_18_25_18
|
||||
master_zh_test同步数据表2021_08_21_16_34_06
|
||||
v1.0.54
|
||||
1. 被动141 310 283 330 336修改
|
||||
master_zh_test同步数据表2021_08_02_19_27_29
|
||||
1. 56被动修改
|
||||
v1.0.54
|
||||
1. 新加被动412
|
||||
v1.0.53
|
||||
1. 随机种子修改
|
||||
master_zh_test同步数据表2021_07_31_17_55_16
|
||||
master_zh_test同步数据表2021_07_31_17_54_20
|
||||
1. 神魂第一期英雄技能添加
|
||||
v1.0.52
|
||||
1. 死亡技能不会被控制
|
||||
2.追加技能是否触发特性修改
|
||||
master_zh_test同步数据表2021_07_26_11_10_56
|
||||
1. 灵兽技能检测修改
|
||||
v1.0.51
|
||||
1. 被动292 修改
|
||||
1. 山河社稷图星级检测修改
|
||||
v1.0.50
|
||||
1. 被动292 319修改
|
||||
|
||||
master_zh_test同步数据表2021_07_13_18_19_09
|
||||
master_zh_test同步数据表2021_07_10_20_33_05
|
||||
1. 灵兽技能触发机制修改
|
||||
v1.0.49
|
||||
1. 同步客户端逻辑
|
||||
1. 同步dev分支战斗逻辑
|
||||
v1.0.48
|
||||
1. 新增紫府神印被动效果
|
||||
1. 同步dev分支战斗逻辑
|
||||
v1.0.47
|
||||
1. 新增英雄觉醒被动 及 困难副本被动 效果
|
||||
|
||||
master_zh_test同步数据表2021_06_30_07_33_23
|
||||
master_zh_test同步数据表2021_06_28_13_40_30
|
||||
1. 同步dev分支战斗逻辑
|
||||
v1.0.46
|
||||
1、同步数据表
|
||||
1. 同步dev分支战斗逻辑
|
||||
v1.0.45
|
||||
1. 【战斗】修改免疫控制效果清除提示
|
||||
1. 新增紫府神印被动效果
|
||||
v1.0.44
|
||||
1. 【战斗】修复群体性的免疫效果不会正常消失的问题
|
||||
1. 新增英雄觉醒被动 及 困难副本被动 效果
|
||||
v1.0.43
|
||||
1. 被动200修改
|
||||
v1.0.42
|
||||
|
@ -395,4 +181,4 @@ v1.0.1
|
|||
|
||||
v1.0.0
|
||||
1、创建战斗版本文件
|
||||
2、灵兽技能加入
|
||||
2、灵兽技能加入
|
Loading…
Reference in New Issue