战斗同步
parent
80df35b883
commit
5fb384e96f
|
@ -42,7 +42,7 @@ function EffectCaster:DoEffect(caster, target, eff, duration, skill)
|
||||||
e.args[i] = eff.args[i]
|
e.args[i] = eff.args[i]
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 检测被动技能对技能参数的影响
|
-- 检测被动技能对技能参数的影响
|
||||||
local function _PassiveCheck(pe)
|
local function _PassiveCheck(pe)
|
||||||
if pe then
|
if pe then
|
||||||
e = pe
|
e = pe
|
||||||
|
@ -60,7 +60,7 @@ end
|
||||||
|
|
||||||
function EffectCaster:takeEffect(caster, target, effects, effectIndex, duration, skill)
|
function EffectCaster:takeEffect(caster, target, effects, effectIndex, duration, skill)
|
||||||
for k=1, #effects do
|
for k=1, #effects do
|
||||||
-- 如果不是第一个效果对列的第一个效果则判断是否命中
|
-- 如果不是第一个效果对列的第一个效果则判断是否命中
|
||||||
if k ~= 1 and effectIndex == 1 then
|
if k ~= 1 and effectIndex == 1 then
|
||||||
if self:CheckTargetIsHit(target) then
|
if self:CheckTargetIsHit(target) then
|
||||||
self:DoEffect(caster, target, effects[k], duration, skill)
|
self:DoEffect(caster, target, effects[k], duration, skill)
|
||||||
|
@ -76,25 +76,25 @@ function EffectCaster:ChooseTarget()
|
||||||
--
|
--
|
||||||
self.effectTargets = {}
|
self.effectTargets = {}
|
||||||
self.targetIsHit = {}
|
self.targetIsHit = {}
|
||||||
-- 先计算出技能的目标
|
-- 先计算出技能的目标
|
||||||
for i=1, #self.effectList do
|
for i=1, #self.effectList do
|
||||||
-- 是否重新选择目标
|
-- 是否重新选择目标
|
||||||
local isReTarget = true
|
local isReTarget = true
|
||||||
if self.targets and self.targets[i] then
|
if self.targets and self.targets[i] then
|
||||||
self.effectTargets[i] = self.targets[i]
|
self.effectTargets[i] = self.targets[i]
|
||||||
-- 判断是否有有效目标
|
-- 判断是否有有效目标
|
||||||
for _, role in ipairs(self.effectTargets[i]) do
|
for _, role in ipairs(self.effectTargets[i]) do
|
||||||
if not role:IsRealDead() then
|
if not role:IsRealDead() then
|
||||||
isReTarget = false
|
isReTarget = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- 重新选择目标
|
-- 重新选择目标
|
||||||
if isReTarget then
|
if isReTarget then
|
||||||
local effectGroup = self.effectList[i]
|
local effectGroup = self.effectList[i]
|
||||||
local chooseId = effectGroup.chooseId
|
local chooseId = effectGroup.chooseId
|
||||||
self.effectTargets[i] = BattleUtil.ChooseTarget(self.skill.owner, chooseId)
|
self.effectTargets[i] = BattleUtil.ChooseTarget(self.skill.owner, chooseId)
|
||||||
-- 检测被动对攻击目标的影响
|
-- 检测被动对攻击目标的影响
|
||||||
if i == 1 then
|
if i == 1 then
|
||||||
local function _PassiveTarget(targets)
|
local function _PassiveTarget(targets)
|
||||||
self.effectTargets[i] = targets
|
self.effectTargets[i] = targets
|
||||||
|
@ -105,19 +105,19 @@ function EffectCaster:ChooseTarget()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 释放技能
|
-- 释放技能
|
||||||
-- func 技能释放完成回调
|
-- func 技能释放完成回调
|
||||||
function EffectCaster:Cast()
|
function EffectCaster:Cast()
|
||||||
-- 选择目标
|
-- 选择目标
|
||||||
self:ChooseTarget()
|
self:ChooseTarget()
|
||||||
|
|
||||||
-- 对目标造成相应的效果
|
-- 对目标造成相应的效果
|
||||||
for i=1, #self.effectList do
|
for i=1, #self.effectList do
|
||||||
local effectGroup = self.effectList[i]
|
local effectGroup = self.effectList[i]
|
||||||
local chooseId = effectGroup.chooseId
|
local chooseId = effectGroup.chooseId
|
||||||
local arr = self.effectTargets[i]
|
local arr = self.effectTargets[i]
|
||||||
if arr and #arr > 0 then
|
if arr and #arr > 0 then
|
||||||
-- 效果延迟1帧生效
|
-- 效果延迟1帧生效
|
||||||
BattleLogic.WaitForTrigger(BattleLogic.GameDeltaTime, function()
|
BattleLogic.WaitForTrigger(BattleLogic.GameDeltaTime, function()
|
||||||
local effects = effectGroup.effects
|
local effects = effectGroup.effects
|
||||||
local weight = math.floor(chooseId % 10000 / 100)
|
local weight = math.floor(chooseId % 10000 / 100)
|
||||||
|
@ -125,10 +125,10 @@ function EffectCaster:Cast()
|
||||||
if count == 0 then
|
if count == 0 then
|
||||||
count = #arr
|
count = #arr
|
||||||
end
|
end
|
||||||
-- 全部同时生效
|
-- 全部同时生效
|
||||||
for j=1, count do
|
for j=1, count do
|
||||||
if arr[j] and not arr[j]:IsRealDead() then
|
if arr[j] and not arr[j]:IsRealDead() then
|
||||||
-- 检测是否命中
|
-- 检测是否命中
|
||||||
if i == 1 then
|
if i == 1 then
|
||||||
self.targetIsHit[arr[j]] = BattleUtil.CheckIsHit(self.skill.owner, arr[j],self.skill)
|
self.targetIsHit[arr[j]] = BattleUtil.CheckIsHit(self.skill.owner, arr[j],self.skill)
|
||||||
end
|
end
|
||||||
|
@ -140,7 +140,7 @@ function EffectCaster:Cast()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 遍历技能命中目标
|
-- 遍历技能命中目标
|
||||||
function EffectCaster:ForeachTargets(func)
|
function EffectCaster:ForeachTargets(func)
|
||||||
local targets = self:GetDirectTargets()
|
local targets = self:GetDirectTargets()
|
||||||
for _, role in ipairs(targets) do
|
for _, role in ipairs(targets) do
|
||||||
|
@ -150,7 +150,7 @@ function EffectCaster:ForeachTargets(func)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 获取直接选择目标Id
|
-- 获取直接选择目标Id
|
||||||
function EffectCaster:GetDirectChooseId()
|
function EffectCaster:GetDirectChooseId()
|
||||||
local effectGroup = self.effectList[1]
|
local effectGroup = self.effectList[1]
|
||||||
local chooseId = effectGroup.chooseId
|
local chooseId = effectGroup.chooseId
|
||||||
|
@ -158,12 +158,12 @@ function EffectCaster:GetDirectChooseId()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- 获取技能的直接目标,和策划规定第一个效果的目标为直接效果目标,(包含miss的目标)
|
-- 获取技能的直接目标,和策划规定第一个效果的目标为直接效果目标,(包含miss的目标)
|
||||||
function EffectCaster:GetDirectTargets()
|
function EffectCaster:GetDirectTargets()
|
||||||
return self.effectTargets[1]
|
return self.effectTargets[1]
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 获取直接目标,不包含miss的目标,可能为空
|
-- 获取直接目标,不包含miss的目标,可能为空
|
||||||
function EffectCaster:GetDirectTargetsNoMiss()
|
function EffectCaster:GetDirectTargetsNoMiss()
|
||||||
local list = {}
|
local list = {}
|
||||||
for _, role in ipairs(self.effectTargets[1]) do
|
for _, role in ipairs(self.effectTargets[1]) do
|
||||||
|
@ -174,7 +174,7 @@ function EffectCaster:GetDirectTargetsNoMiss()
|
||||||
return list
|
return list
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 获取技能目标最大人数
|
-- 获取技能目标最大人数
|
||||||
function EffectCaster:GetMaxTargetNum()
|
function EffectCaster:GetMaxTargetNum()
|
||||||
local mainEffect = self.effectList[1]
|
local mainEffect = self.effectList[1]
|
||||||
if not mainEffect then
|
if not mainEffect then
|
||||||
|
@ -183,7 +183,7 @@ function EffectCaster:GetMaxTargetNum()
|
||||||
return BattleUtil.GetMaxTargetNum(mainEffect.chooseId)
|
return BattleUtil.GetMaxTargetNum(mainEffect.chooseId)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 判断是否命中
|
-- 判断是否命中
|
||||||
function EffectCaster:CheckTargetIsHit(role)
|
function EffectCaster:CheckTargetIsHit(role)
|
||||||
return self.targetIsHit[role]
|
return self.targetIsHit[role]
|
||||||
end
|
end
|
||||||
|
|
|
@ -1839,27 +1839,34 @@ local passivityList = {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- 释放技能后给除自己外己方生命最少的武将附加无敌盾持续[b]回合(只剩自己则不加)
|
-- 释放技能后给除自己外己方生命最少的[a]名武将附加无敌盾持续[b]回合(只剩自己则不加)
|
||||||
--b[属性]
|
-- a[int] b[int]
|
||||||
[104] = function(role, args,id,judge)
|
[104] = function(role, args,id,judge)
|
||||||
local i1 = args[1]
|
local i1 = args[1]
|
||||||
|
local num = args[2]
|
||||||
-- 释放技能后
|
-- 释放技能后
|
||||||
local onSkillEnd = function(skill)
|
local onSkillEnd = function(skill)
|
||||||
if skill and not skill.isTriggerJudge and judge==1 then
|
if skill and not skill.isTriggerJudge and judge==1 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
local heros={}
|
||||||
if skill.type == BattleSkillType.Special then
|
if skill.type == BattleSkillType.Special then
|
||||||
local list = RoleManager.Query(function(v) return v.camp == role.camp end)
|
local list = RoleManager.Query(function(v) return v.camp == role.camp end)
|
||||||
BattleUtil.SortByHpFactor(list, 1)
|
BattleUtil.SortByHpFactor(list, 1)
|
||||||
local target = nil
|
local target = nil
|
||||||
for i = 1, #list do
|
for i = 1, #list do
|
||||||
if not list[i]:IsRealDead() and list[i] ~= role then
|
if not list[i]:IsRealDead() and list[i] ~= role then
|
||||||
target = list[i]
|
-- target = list[i]
|
||||||
break
|
table.insert(heros,list[i])
|
||||||
|
-- break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if target then
|
if heros then
|
||||||
target:AddBuff(Buff.Create(role, BuffName.Shield, i1, ShieldTypeName.AllReduce, 0, 0))
|
for i = 1, i1 do
|
||||||
|
if heros[i] then
|
||||||
|
heros[i]:AddBuff(Buff.Create(role, BuffName.Shield, num, ShieldTypeName.AllReduce, 0, 0))
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -2733,7 +2740,7 @@ local passivityList = {
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
|
||||||
-- 战斗第[a]回合无敌
|
-- 战斗第开始无敌[a]回合
|
||||||
-- a[int]
|
-- a[int]
|
||||||
[141] = function(role, args)
|
[141] = function(role, args)
|
||||||
local i1 = args[1]
|
local i1 = args[1]
|
||||||
|
@ -2742,6 +2749,7 @@ local passivityList = {
|
||||||
-- 第i1回合开始
|
-- 第i1回合开始
|
||||||
if curRound == i1 then
|
if curRound == i1 then
|
||||||
buff = Buff.Create(role, BuffName.Shield, 0, ShieldTypeName.AllReduce, 0, 0)
|
buff = Buff.Create(role, BuffName.Shield, 0, ShieldTypeName.AllReduce, 0, 0)
|
||||||
|
buff.cover = false
|
||||||
buff.clear = false
|
buff.clear = false
|
||||||
role:AddBuff(buff)
|
role:AddBuff(buff)
|
||||||
end
|
end
|
||||||
|
@ -3115,7 +3123,7 @@ local passivityList = {
|
||||||
role.Event:AddEvent(BattleEventName.RoleHit, onHit)
|
role.Event:AddEvent(BattleEventName.RoleHit, onHit)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
-- 复活友方第[a]位阵亡的英雄并回复其[b]%的生命每场战斗触发[c]次;复活的如果是[d]阵营,回复[e]%
|
-- 复活友方[a]位阵亡的英雄并回复其[b]%的生命每场战斗触发[c]次;复活的如果是[d]阵营,回复[e]%
|
||||||
-- a[int]b[float]c[int] d[int] e[float] (d,e不配就不会额外回复)
|
-- a[int]b[float]c[int] d[int] e[float] (d,e不配就不会额外回复)
|
||||||
[154] = function(role, args)
|
[154] = function(role, args)
|
||||||
local i1 = args[1]
|
local i1 = args[1]
|
||||||
|
@ -3134,7 +3142,7 @@ local passivityList = {
|
||||||
f1=v1
|
f1=v1
|
||||||
end
|
end
|
||||||
counter = counter + 1
|
counter = counter + 1
|
||||||
if counter == i1 then
|
if counter <= i1 then
|
||||||
deadRole:SetRelive(f1)
|
deadRole:SetRelive(f1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -3188,10 +3196,11 @@ local passivityList = {
|
||||||
role.Event:AddEvent(BattleEventName.BuffCaster, OnBuffCaster)
|
role.Event:AddEvent(BattleEventName.BuffCaster, OnBuffCaster)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
-- 释放技能后回复当前本方阵容最靠前武将[a]点怒气
|
-- 释放技能后回复当前本方阵容最靠前[a]名武将[b]点怒气
|
||||||
-- a[int]
|
-- a[int] b[int]
|
||||||
[158] = function(role, args,id,judge)
|
[158] = function(role, args,id,judge)
|
||||||
local i1 = args[1]
|
local i1 = args[1]
|
||||||
|
local num = args[2]
|
||||||
local onSkillCastEnd = function(skill)
|
local onSkillCastEnd = function(skill)
|
||||||
if skill and not skill.isTriggerJudge and judge==1 then
|
if skill and not skill.isTriggerJudge and judge==1 then
|
||||||
return
|
return
|
||||||
|
@ -3201,10 +3210,14 @@ local passivityList = {
|
||||||
table.sort(list, function(a, b)
|
table.sort(list, function(a, b)
|
||||||
return a.position < b.position
|
return a.position < b.position
|
||||||
end)
|
end)
|
||||||
|
local aaa = 0
|
||||||
for i= 1, #list do
|
for i= 1, #list do
|
||||||
if list[i] and not list[i]:IsRealDead() then
|
if list[i] and not list[i]:IsRealDead() then
|
||||||
BattleUtil.CalRage(role, list[i], i1, CountTypeName.Add)
|
BattleUtil.CalRage(role, list[i], num, CountTypeName.Add)
|
||||||
break
|
aaa=aaa+1
|
||||||
|
if aaa==i1 then
|
||||||
|
break
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -3930,7 +3943,7 @@ local passivityList = {
|
||||||
-- 检测技能伤害治疗加成
|
-- 检测技能伤害治疗加成
|
||||||
local f = BattleUtil.CheckSkillDamageHeal(f1, role, target)
|
local f = BattleUtil.CheckSkillDamageHeal(f1, role, target)
|
||||||
-- 治疗自己
|
-- 治疗自己
|
||||||
BattleUtil.ApplyTreat(role, role, floor(BattleUtil.ErrorCorrection(finalDmg * f)))
|
BattleUtil.ApplyTreat(role, role, floor(BattleUtil.ErrorCorrection(damage * f)))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
role.Event:AddEvent(BattleEventName.RoleHit, onHit)
|
role.Event:AddEvent(BattleEventName.RoleHit, onHit)
|
||||||
|
@ -4759,18 +4772,40 @@ local passivityList = {
|
||||||
end,
|
end,
|
||||||
|
|
||||||
-- 大闹天宫胜利次数
|
-- 大闹天宫胜利次数
|
||||||
[225] = function(role, args)
|
[225] = function(role, args,id,judge)
|
||||||
--王振兴添加
|
--王振兴添加
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
local pro1 = args[2]
|
local pro1 = args[2]
|
||||||
local ct1 = args[3]
|
local ct1 = args[3]
|
||||||
local maxNum = args[4]
|
local maxNum = args[4]
|
||||||
-- 紫+橙
|
-- 紫+橙
|
||||||
local num = OutDataManager.GetOutData(role.camp, OutDataName.WinTimes)
|
local num = OutDataManager.GetOutData(role.camp,id)
|
||||||
|
|
||||||
num = min(maxNum, num)
|
num = min(maxNum, num)
|
||||||
|
if num==0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local hp=0
|
||||||
|
local hp2=0
|
||||||
|
--如果提升的是血量上限
|
||||||
|
if pro1==12 then
|
||||||
|
hp = role:GetRoleData(RoleDataName.Hp) / role:GetRoleData(RoleDataName.MaxHp)
|
||||||
|
end
|
||||||
BattleUtil.AddProp(role, pro1, f1 * num, ct1)
|
BattleUtil.AddProp(role, pro1, f1 * num, ct1)
|
||||||
|
--如果提升的是血量上限
|
||||||
|
if pro1==12 then
|
||||||
|
hp2 = role:GetRoleData(RoleDataName.Hp) / role:GetRoleData(RoleDataName.MaxHp)
|
||||||
|
local pro=hp-hp2
|
||||||
|
local treat= floor(BattleUtil.ErrorCorrection(role:GetRoleData(RoleDataName.MaxHp)*pro))
|
||||||
|
role.data:AddValue(RoleDataName.Hp, treat)
|
||||||
|
BattleLogManager.Log(
|
||||||
|
"Final Treat",
|
||||||
|
"acamp", role.camp,
|
||||||
|
"apos", role.position,
|
||||||
|
"tcamp", role.camp,
|
||||||
|
"tpos", role.position,
|
||||||
|
"value", treat
|
||||||
|
)
|
||||||
|
end
|
||||||
end,
|
end,
|
||||||
|
|
||||||
-- 斩杀生命低于[a]的敌人
|
-- 斩杀生命低于[a]的敌人
|
||||||
|
@ -4962,7 +4997,7 @@ local passivityList = {
|
||||||
-- 猎妖之路专属
|
-- 猎妖之路专属
|
||||||
-- 根据同时拥有夜明珠的数量获得效果:2个:[c]改变[a]的[b];3个:[f]改变[d]的[e];4个:[i]改变[g]的[h]
|
-- 根据同时拥有夜明珠的数量获得效果:2个:[c]改变[a]的[b];3个:[f]改变[d]的[e];4个:[i]改变[g]的[h]
|
||||||
-- a[float],b[属性],c[改变类型],d[float],e[属性],f[改变类型],g[float],h[属性],i[改变类型]
|
-- a[float],b[属性],c[改变类型],d[float],e[属性],f[改变类型],g[float],h[属性],i[改变类型]
|
||||||
[237] = function(role, args)
|
[237] = function(role, args,id,judge)
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
local pro1 = args[2]
|
local pro1 = args[2]
|
||||||
local ct1 = args[3]
|
local ct1 = args[3]
|
||||||
|
@ -4974,7 +5009,7 @@ local passivityList = {
|
||||||
local ct3 = args[9]
|
local ct3 = args[9]
|
||||||
|
|
||||||
|
|
||||||
local num = OutDataManager.GetOutData(role.camp, OutDataName.DarkGlowBallNum)
|
local num = OutDataManager.GetOutData(role.camp,id)
|
||||||
if num >= 2 then
|
if num >= 2 then
|
||||||
BattleUtil.AddProp(role, pro1, f1, ct1)
|
BattleUtil.AddProp(role, pro1, f1, ct1)
|
||||||
end
|
end
|
||||||
|
@ -4988,7 +5023,7 @@ local passivityList = {
|
||||||
-- 猎妖之路专属
|
-- 猎妖之路专属
|
||||||
-- 在大闹天空的第[a]层中,我方武将[d]改变[b]的[c],[g改变[e]的[f]
|
-- 在大闹天空的第[a]层中,我方武将[d]改变[b]的[c],[g改变[e]的[f]
|
||||||
-- a[位置],b[float],c[属性],d[改变类型],e[float],f[属性],g[改变类型]
|
-- a[位置],b[float],c[属性],d[改变类型],e[float],f[属性],g[改变类型]
|
||||||
[238] = function(role, args)
|
[238] = function(role, args,id,judge)
|
||||||
local flr = args[1]
|
local flr = args[1]
|
||||||
local f1 = args[2]
|
local f1 = args[2]
|
||||||
local pro1 = args[3]
|
local pro1 = args[3]
|
||||||
|
@ -4997,7 +5032,7 @@ local passivityList = {
|
||||||
local pro2 = args[6]
|
local pro2 = args[6]
|
||||||
local ct2 = args[7]
|
local ct2 = args[7]
|
||||||
|
|
||||||
if OutDataManager.GetOutData(role.camp, OutDataName.DaNaoTianGongFloor) == flr then
|
if OutDataManager.GetOutData(role.camp,id) == flr then
|
||||||
BattleUtil.AddProp(role, pro1, f1, ct1)
|
BattleUtil.AddProp(role, pro1, f1, ct1)
|
||||||
BattleUtil.AddProp(role, pro2, f2, ct2)
|
BattleUtil.AddProp(role, pro2, f2, ct2)
|
||||||
end
|
end
|
||||||
|
@ -5005,7 +5040,7 @@ local passivityList = {
|
||||||
-- 猎妖之路专属
|
-- 猎妖之路专属
|
||||||
-- 每有一件紫色品质以上的战利品,我方武将[d]改变[b]的[c],[g改变[e]的[f],最多[h]层
|
-- 每有一件紫色品质以上的战利品,我方武将[d]改变[b]的[c],[g改变[e]的[f],最多[h]层
|
||||||
-- b[float],c[属性],d[改变类型],e[float],f[属性],g[改变类型],h[int]
|
-- b[float],c[属性],d[改变类型],e[float],f[属性],g[改变类型],h[int]
|
||||||
[239] = function(role, args)
|
[239] = function(role, args,id,judge)
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
local pro1 = args[2]
|
local pro1 = args[2]
|
||||||
local ct1 = args[3]
|
local ct1 = args[3]
|
||||||
|
@ -5015,7 +5050,7 @@ local passivityList = {
|
||||||
local maxNum = args[7]
|
local maxNum = args[7]
|
||||||
|
|
||||||
-- 紫+橙
|
-- 紫+橙
|
||||||
local num = OutDataManager.GetOutData(role.camp, OutDataName.OrangeGloryItemNum) + OutDataManager.GetOutData(role.camp, OutDataName.RedGloryItemNum)
|
local num = OutDataManager.GetOutData(role.camp, id)
|
||||||
num = min(maxNum, num)
|
num = min(maxNum, num)
|
||||||
BattleUtil.AddProp(role, pro1, f1 * num, ct1)
|
BattleUtil.AddProp(role, pro1, f1 * num, ct1)
|
||||||
BattleUtil.AddProp(role, pro2, f2 * num, ct2)
|
BattleUtil.AddProp(role, pro2, f2 * num, ct2)
|
||||||
|
@ -5023,15 +5058,15 @@ local passivityList = {
|
||||||
-- 猎妖之路专属
|
-- 猎妖之路专属
|
||||||
-- 每使用一次神秘药水,我方武将[c]改变[a]的[b],最多[d]层
|
-- 每使用一次神秘药水,我方武将[c]改变[a]的[b],最多[d]层
|
||||||
-- a[float],b[属性],c[改变类型],d[int]
|
-- a[float],b[属性],c[改变类型],d[int]
|
||||||
[240] = function(role, args)
|
[240] = function(role, args,id,judge)
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
local pro1 = args[2]
|
local pro1 = args[2]
|
||||||
local ct1 = args[3]
|
local ct1 = args[3]
|
||||||
local maxNum = args[4]
|
local maxNum = args[4]
|
||||||
|
|
||||||
-- 紫+橙
|
-- 紫+橙
|
||||||
local num = OutDataManager.GetOutData(role.camp, OutDataName.MisteryLiquidUsedTimes)
|
local num = OutDataManager.GetOutData(role.camp, id)
|
||||||
|
--LogError("笔使用次数:"..num)
|
||||||
num = min(maxNum, num)
|
num = min(maxNum, num)
|
||||||
BattleUtil.AddProp(role, pro1, f1 * num, ct1)
|
BattleUtil.AddProp(role, pro1, f1 * num, ct1)
|
||||||
end,
|
end,
|
||||||
|
@ -5844,16 +5879,19 @@ local passivityList = {
|
||||||
end
|
end
|
||||||
role.Event:AddEvent(BattleEventName.PassiveBeDamaging, onPassiveBeDamaging)
|
role.Event:AddEvent(BattleEventName.PassiveBeDamaging, onPassiveBeDamaging)
|
||||||
end,
|
end,
|
||||||
-- 战斗第回合概率无敌,回合数每增加1,概率是之前的[a]
|
-- 战斗第[a]回合开始概率无敌,回合数每增加1,概率是之前的[b]
|
||||||
-- a[float]
|
-- a[int] b[float]
|
||||||
[272] = function(role, args)
|
[272] = function(role, args)
|
||||||
local i1 = args[1]
|
local i1 = args[1]
|
||||||
|
local p1 =args[2]
|
||||||
local buff=nil
|
local buff=nil
|
||||||
local isTrigger=true
|
local isTrigger=true
|
||||||
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundChange, function(curRound)
|
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundChange, function(curRound)
|
||||||
local pro=0
|
local pro=0
|
||||||
if curRound>0 then
|
if curRound>i1 then
|
||||||
pro=i1^(curRound-1)
|
pro=p1^(curRound-i1)
|
||||||
|
else
|
||||||
|
pro=1
|
||||||
end
|
end
|
||||||
if isTrigger then
|
if isTrigger then
|
||||||
local isAdd=BattleUtil.RandomAction(pro, function ()
|
local isAdd=BattleUtil.RandomAction(pro, function ()
|
||||||
|
@ -6699,5 +6737,59 @@ local passivityList = {
|
||||||
end
|
end
|
||||||
BattleLogic.Event:AddEvent(BattleEventName.RoleRealDead, onRoleHit)
|
BattleLogic.Event:AddEvent(BattleEventName.RoleRealDead, onRoleHit)
|
||||||
end,
|
end,
|
||||||
|
--英雄[a],附加的[b]种类[c]类型buff,持续时间改变[d][e]回合
|
||||||
|
--a[int],b[int buff类型],c[int type类型],d[int 改变类型],e[int]
|
||||||
|
[306] = function(role, args)
|
||||||
|
local id = args[1]
|
||||||
|
local tp1 = args[2]
|
||||||
|
local tp2 = args[3]
|
||||||
|
local ct = args[4]
|
||||||
|
local round = args[5]
|
||||||
|
local OnBuffCaster = function(buff)
|
||||||
|
if not buff then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if buff.type~=tp1 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if role.roleId~=id then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if buff.type == BuffName.PropertyChange then
|
||||||
|
if buff.changeType~=tp2 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
elseif buff.type==BuffName.Control then
|
||||||
|
if buff.ctrlType~=tp2 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
elseif buff.type== BuffName.DOT then
|
||||||
|
if buff.damageType~=tp2 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
elseif buff.type== BuffName.HOT then
|
||||||
|
|
||||||
|
elseif buff.type== BuffName.Shield then
|
||||||
|
if buff.shieldType~=tp2 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
elseif buff.type== BuffName.Immune then
|
||||||
|
if buff.immuneType~=tp2 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if ct == 1 then --加算
|
||||||
|
buff.duration = buff.duration + round
|
||||||
|
elseif ct == 2 then --乘加算(百分比属性加算)
|
||||||
|
buff.duration = buff.duration * (1 + round)
|
||||||
|
elseif ct == 3 then --减算
|
||||||
|
buff.duration = buff.duration - round
|
||||||
|
elseif ct == 4 then --乘减算(百分比属性减算)
|
||||||
|
buff.duration = buff.duration * (1 - round)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
role.Event:AddEvent(BattleEventName.BuffCaster, OnBuffCaster)
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
return passivityList
|
return passivityList
|
||||||
|
|
Loading…
Reference in New Issue