Merge branch '0功能/本周版本优化内容_battle' into 0功能/本周版本优化内容
commit
ca62c6f377
|
@ -1839,27 +1839,34 @@ local passivityList = {
|
|||
|
||||
|
||||
|
||||
-- 释放技能后给除自己外己方生命最少的武将附加无敌盾持续[b]回合(只剩自己则不加)
|
||||
--b[属性]
|
||||
-- 释放技能后给除自己外己方生命最少的[a]名武将附加无敌盾持续[b]回合(只剩自己则不加)
|
||||
-- a[int] b[int]
|
||||
[104] = function(role, args,id,judge)
|
||||
local i1 = args[1]
|
||||
local num = args[2]
|
||||
-- 释放技能后
|
||||
local onSkillEnd = function(skill)
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
end
|
||||
local heros={}
|
||||
if skill.type == BattleSkillType.Special then
|
||||
local list = RoleManager.Query(function(v) return v.camp == role.camp end)
|
||||
BattleUtil.SortByHpFactor(list, 1)
|
||||
local target = nil
|
||||
for i = 1, #list do
|
||||
if not list[i]:IsRealDead() and list[i] ~= role then
|
||||
target = list[i]
|
||||
break
|
||||
-- target = list[i]
|
||||
table.insert(heros,list[i])
|
||||
-- break
|
||||
end
|
||||
end
|
||||
if target then
|
||||
target:AddBuff(Buff.Create(role, BuffName.Shield, i1, ShieldTypeName.AllReduce, 0, 0))
|
||||
if heros then
|
||||
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
|
||||
|
@ -2733,15 +2740,15 @@ local passivityList = {
|
|||
end,
|
||||
|
||||
|
||||
-- 战斗第[a]回合无敌
|
||||
-- 战斗第开始无敌[a]回合
|
||||
-- a[int]
|
||||
[141] = function(role, args)
|
||||
local i1 = args[1]
|
||||
local buff
|
||||
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundChange, function(curRound)
|
||||
-- 第i1回合开始
|
||||
if curRound == i1 then
|
||||
buff = Buff.Create(role, BuffName.Shield, 0, ShieldTypeName.AllReduce, 0, 0)
|
||||
if curRound == 1 then
|
||||
buff = Buff.Create(role, BuffName.Shield, i1, ShieldTypeName.AllReduce, 0, 0)
|
||||
buff.clear = false
|
||||
role:AddBuff(buff)
|
||||
end
|
||||
|
@ -3115,7 +3122,7 @@ local passivityList = {
|
|||
role.Event:AddEvent(BattleEventName.RoleHit, onHit)
|
||||
end,
|
||||
|
||||
-- 复活友方第[a]位阵亡的英雄并回复其[b]%的生命每场战斗触发[c]次;复活的如果是[d]阵营,回复[e]%
|
||||
-- 复活友方[a]位阵亡的英雄并回复其[b]%的生命每场战斗触发[c]次;复活的如果是[d]阵营,回复[e]%
|
||||
-- a[int]b[float]c[int] d[int] e[float] (d,e不配就不会额外回复)
|
||||
[154] = function(role, args)
|
||||
local i1 = args[1]
|
||||
|
@ -3134,7 +3141,7 @@ local passivityList = {
|
|||
f1=v1
|
||||
end
|
||||
counter = counter + 1
|
||||
if counter == i1 then
|
||||
if counter <= i1 then
|
||||
deadRole:SetRelive(f1)
|
||||
end
|
||||
end
|
||||
|
@ -3188,10 +3195,11 @@ local passivityList = {
|
|||
role.Event:AddEvent(BattleEventName.BuffCaster, OnBuffCaster)
|
||||
end,
|
||||
|
||||
-- 释放技能后回复当前本方阵容最靠前武将[a]点怒气
|
||||
-- a[int]
|
||||
-- 释放技能后回复当前本方阵容最靠前[a]名武将[b]点怒气
|
||||
-- a[int] b[int]
|
||||
[158] = function(role, args,id,judge)
|
||||
local i1 = args[1]
|
||||
local num = args[2]
|
||||
local onSkillCastEnd = function(skill)
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
return
|
||||
|
@ -3201,10 +3209,14 @@ local passivityList = {
|
|||
table.sort(list, function(a, b)
|
||||
return a.position < b.position
|
||||
end)
|
||||
local aaa = 0
|
||||
for i= 1, #list do
|
||||
if list[i] and not list[i]:IsRealDead() then
|
||||
BattleUtil.CalRage(role, list[i], i1, CountTypeName.Add)
|
||||
break
|
||||
BattleUtil.CalRage(role, list[i], num, CountTypeName.Add)
|
||||
aaa=aaa+1
|
||||
if aaa==i1 then
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -4759,16 +4771,19 @@ local passivityList = {
|
|||
end,
|
||||
|
||||
-- 大闹天宫胜利次数
|
||||
[225] = function(role, args)
|
||||
[225] = function(role, args,id,judge)
|
||||
--王振兴添加
|
||||
local f1 = args[1]
|
||||
local pro1 = args[2]
|
||||
local ct1 = args[3]
|
||||
local maxNum = args[4]
|
||||
-- 紫+橙
|
||||
local num = OutDataManager.GetOutData(role.camp, OutDataName.WinTimes)
|
||||
|
||||
local num = OutDataManager.GetOutData(role.camp,id)
|
||||
-- LogError("id: "..id.." 胜利次数:"..num)
|
||||
num = min(maxNum, num)
|
||||
if num==0 then
|
||||
return
|
||||
end
|
||||
BattleUtil.AddProp(role, pro1, f1 * num, ct1)
|
||||
|
||||
end,
|
||||
|
@ -4962,7 +4977,7 @@ local passivityList = {
|
|||
-- 猎妖之路专属
|
||||
-- 根据同时拥有夜明珠的数量获得效果:2个:[c]改变[a]的[b];3个:[f]改变[d]的[e];4个:[i]改变[g]的[h]
|
||||
-- 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 pro1 = args[2]
|
||||
local ct1 = args[3]
|
||||
|
@ -4974,7 +4989,8 @@ local passivityList = {
|
|||
local ct3 = args[9]
|
||||
|
||||
|
||||
local num = OutDataManager.GetOutData(role.camp, OutDataName.DarkGlowBallNum)
|
||||
local num = OutDataManager.GetOutData(role.camp,id)
|
||||
LogError("舍利子数量 "..num)
|
||||
if num >= 2 then
|
||||
BattleUtil.AddProp(role, pro1, f1, ct1)
|
||||
end
|
||||
|
@ -4988,7 +5004,7 @@ local passivityList = {
|
|||
-- 猎妖之路专属
|
||||
-- 在大闹天空的第[a]层中,我方武将[d]改变[b]的[c],[g改变[e]的[f]
|
||||
-- a[位置],b[float],c[属性],d[改变类型],e[float],f[属性],g[改变类型]
|
||||
[238] = function(role, args)
|
||||
[238] = function(role, args,id,judge)
|
||||
local flr = args[1]
|
||||
local f1 = args[2]
|
||||
local pro1 = args[3]
|
||||
|
@ -4997,7 +5013,7 @@ local passivityList = {
|
|||
local pro2 = args[6]
|
||||
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, pro2, f2, ct2)
|
||||
end
|
||||
|
@ -5005,7 +5021,7 @@ local passivityList = {
|
|||
-- 猎妖之路专属
|
||||
-- 每有一件紫色品质以上的战利品,我方武将[d]改变[b]的[c],[g改变[e]的[f],最多[h]层
|
||||
-- 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 pro1 = args[2]
|
||||
local ct1 = args[3]
|
||||
|
@ -5015,7 +5031,7 @@ local passivityList = {
|
|||
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)
|
||||
BattleUtil.AddProp(role, pro1, f1 * num, ct1)
|
||||
BattleUtil.AddProp(role, pro2, f2 * num, ct2)
|
||||
|
@ -5023,15 +5039,15 @@ local passivityList = {
|
|||
-- 猎妖之路专属
|
||||
-- 每使用一次神秘药水,我方武将[c]改变[a]的[b],最多[d]层
|
||||
-- a[float],b[属性],c[改变类型],d[int]
|
||||
[240] = function(role, args)
|
||||
[240] = function(role, args,id,judge)
|
||||
local f1 = args[1]
|
||||
local pro1 = args[2]
|
||||
local ct1 = args[3]
|
||||
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)
|
||||
BattleUtil.AddProp(role, pro1, f1 * num, ct1)
|
||||
end,
|
||||
|
@ -5209,6 +5225,7 @@ local passivityList = {
|
|||
[249] = function(role, args,id,judge)
|
||||
local f1 = args[1]
|
||||
local round = 0
|
||||
local isKill =false
|
||||
-- 释放技能后
|
||||
local onRoleHit = function(target,damage, bCrit, finalDmg, damageType, skill)
|
||||
if skill and not skill.isTriggerJudge and judge==1 then
|
||||
|
@ -5218,16 +5235,11 @@ local passivityList = {
|
|||
if skill and BattleUtil.ChecklistIsContainValue(skill.triggerPassivityId,id) then
|
||||
return
|
||||
end
|
||||
local curRound=BattleLogic.GetCurRound()
|
||||
--每个回合只会生效一次
|
||||
if curRound>round then
|
||||
round=curRound
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
if target:IsDead() and not BattleUtil.CheckIsNoDead(target) then
|
||||
local buff = Buff.Create(role, BuffName.PropertyChange, 1, RoleDataName.Crit, f1, CountTypeName.Add)
|
||||
role:AddBuff(buff)
|
||||
-- local buff = Buff.Create(role, BuffName.PropertyChange, 1, RoleDataName.Crit, f1, CountTypeName.Add)
|
||||
-- role:AddBuff(buff)
|
||||
isKill = true
|
||||
if skill then
|
||||
--skill.isTriggePassivity=true
|
||||
table.insert(skill.triggerPassivityId,id)
|
||||
|
@ -5235,6 +5247,26 @@ local passivityList = {
|
|||
end
|
||||
end
|
||||
role.Event:AddEvent(BattleEventName.RoleHit, onRoleHit)
|
||||
|
||||
local onRoundChange=function(round2)
|
||||
if round2==round+1 and isKill then
|
||||
role.mustCrit=true
|
||||
else
|
||||
role.mustCrit=false
|
||||
isKill=false
|
||||
end
|
||||
round=round2
|
||||
end
|
||||
|
||||
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundChange, onRoundChange)
|
||||
|
||||
|
||||
local onRoundStart=function(round2)
|
||||
isKill=false
|
||||
end
|
||||
|
||||
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundStart, onRoundStart)
|
||||
|
||||
end,
|
||||
|
||||
-- 直接伤害每次击杀目标增加自身伤害[a]%,[b]改变,可叠加持续至战斗结束 重写132 一次技能只触发一次被动
|
||||
|
@ -5828,16 +5860,19 @@ local passivityList = {
|
|||
end
|
||||
role.Event:AddEvent(BattleEventName.PassiveBeDamaging, onPassiveBeDamaging)
|
||||
end,
|
||||
-- 战斗第回合概率无敌,回合数每增加1,概率是之前的[a]
|
||||
-- a[float]
|
||||
-- 战斗第[a]回合开始概率无敌,回合数每增加1,概率是之前的[b]
|
||||
-- a[int] b[float]
|
||||
[272] = function(role, args)
|
||||
local i1 = args[1]
|
||||
local p1 =args[2]
|
||||
local buff=nil
|
||||
local isTrigger=true
|
||||
BattleLogic.Event:AddEvent(BattleEventName.BattleRoundChange, function(curRound)
|
||||
local pro=0
|
||||
if curRound>0 then
|
||||
pro=i1^(curRound-1)
|
||||
if curRound>i1 then
|
||||
pro=p1^(curRound-i1)
|
||||
else
|
||||
pro=1
|
||||
end
|
||||
if isTrigger then
|
||||
local isAdd=BattleUtil.RandomAction(pro, function ()
|
||||
|
@ -6683,5 +6718,59 @@ local passivityList = {
|
|||
end
|
||||
BattleLogic.Event:AddEvent(BattleEventName.RoleRealDead, onRoleHit)
|
||||
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
|
Loading…
Reference in New Issue