[战斗]========技能149 被动429 430 431修改提交
parent
d0b2ff1cd8
commit
9e010245fe
|
@ -2890,7 +2890,7 @@ local effectList = {
|
||||||
target:SetRelive(pro, caster)
|
target:SetRelive(pro, caster)
|
||||||
end,
|
end,
|
||||||
--造成[a]%的[b]伤害,造成伤害的[c]%用于医疗生命值最低的队友。(攻击目标为多人治疗不重复)
|
--造成[a]%的[b]伤害,造成伤害的[c]%用于医疗生命值最低的队友。(攻击目标为多人治疗不重复)
|
||||||
--a[float],b[伤害类型],c[float] ,d[int]
|
--a[float],b[伤害类型],c[float]
|
||||||
[148] = function(caster, target, args, interval, skill)
|
[148] = function(caster, target, args, interval, skill)
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
local dt = args[2]
|
local dt = args[2]
|
||||||
|
@ -2901,8 +2901,6 @@ local effectList = {
|
||||||
local OnBeHit = function(atkRole, damage, bCrit, finalDmg, damageType)
|
local OnBeHit = function(atkRole, damage, bCrit, finalDmg, damageType)
|
||||||
local arr = RoleManager.NoOrder(function (r) return r.camp == caster.camp end,false,true)
|
local arr = RoleManager.NoOrder(function (r) return r.camp == caster.camp end,false,true)
|
||||||
BattleUtil.SortByHpFactor(arr, 1)
|
BattleUtil.SortByHpFactor(arr, 1)
|
||||||
-- 检测技能伤害治疗加成
|
|
||||||
-- 治疗血量最低队友实际伤害的f2%
|
|
||||||
--之前是finaldag 改成 damage
|
--之前是finaldag 改成 damage
|
||||||
for i = 1, #arr do
|
for i = 1, #arr do
|
||||||
if not BattleUtil.ChecklistIsContainValue(skill.targets,arr[i]) then
|
if not BattleUtil.ChecklistIsContainValue(skill.targets,arr[i]) then
|
||||||
|
@ -2920,6 +2918,41 @@ local effectList = {
|
||||||
end)
|
end)
|
||||||
|
|
||||||
end,
|
end,
|
||||||
|
--造成[a]%的[b]伤害,造成技能总伤害的[c]%用于医疗生命值最低的队友(治疗队友数为集中敌人数)。
|
||||||
|
--a[float],b[伤害类型],c[float] ,d[int]
|
||||||
|
[149] = function(caster, target, args, interval, skill)
|
||||||
|
local f1 = args[1]
|
||||||
|
local dt = args[2]
|
||||||
|
local f2 = args[3]
|
||||||
|
local num = args[4]
|
||||||
|
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, skill, target)
|
||||||
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
|
local OnBeHit = function(atkRole, damage, bCrit, finalDmg, damageType,curSkill)
|
||||||
|
if curSkill then
|
||||||
|
curSkill.skillDamage=curSkill.skillDamage+damage
|
||||||
|
end
|
||||||
|
end
|
||||||
|
target.Event:AddEvent(BattleEventName.RoleBeHit, OnBeHit)
|
||||||
|
BattleUtil.CalDamage(skill, caster, target, dt, f1)
|
||||||
|
target.Event:RemoveEvent(BattleEventName.RoleBeHit, OnBeHit)
|
||||||
|
local OnSkillEnd
|
||||||
|
OnSkillEnd=function(skill)
|
||||||
|
local arr = RoleManager.NoOrder(function (r) return r.camp == caster.camp end,false,true)
|
||||||
|
BattleUtil.SortByHpFactor(arr, 1)
|
||||||
|
for i = 1, #arr do
|
||||||
|
if not BattleUtil.ChecklistIsContainValue(skill.targets,arr[i]) then
|
||||||
|
f2 = BattleUtil.CheckSkillDamageHeal(f2, caster, arr[i])
|
||||||
|
BattleUtil.ApplyTreat(caster, arr[i], floor(skill.skillDamage*f2))
|
||||||
|
table.insert(skill.targets,arr[i])
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
caster.Event:RemoveEvent(BattleEventName.SkillCastEnd,OnSkillEnd)
|
||||||
|
end
|
||||||
|
caster.Event:AddEvent(BattleEventName.SkillCastEnd,OnSkillEnd)
|
||||||
|
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11053,6 +11053,10 @@ local passivityList = {
|
||||||
if skill and not skill.isTriggerJudge and judge==1 then
|
if skill and not skill.isTriggerJudge and judge==1 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
--只有主角一技能才能触发这个被动
|
||||||
|
if skill.isPlayerSkill~=nil and skill.isPlayerSkill==false then
|
||||||
|
return
|
||||||
|
end
|
||||||
local list = skill:GetDirectTargets()
|
local list = skill:GetDirectTargets()
|
||||||
if list then
|
if list then
|
||||||
for i = 1, #list do
|
for i = 1, #list do
|
||||||
|
@ -11078,6 +11082,10 @@ local passivityList = {
|
||||||
if not skill then
|
if not skill then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
--只有主角一技能才能触发这个被动
|
||||||
|
if skill.isPlayerSkill~=nil and skill.isPlayerSkill==false then
|
||||||
|
return
|
||||||
|
end
|
||||||
if skill and not skill.isTriggerJudge and judge==1 then
|
if skill and not skill.isTriggerJudge and judge==1 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -11105,6 +11113,10 @@ local passivityList = {
|
||||||
if skill and not skill.isTriggerJudge and judge==1 then
|
if skill and not skill.isTriggerJudge and judge==1 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
--只有主角一技能才能触发这个被动
|
||||||
|
if skill.isPlayerSkill~=nil and skill.isPlayerSkill==false then
|
||||||
|
return
|
||||||
|
end
|
||||||
if type and type==1 and skill.type~=BattleSkillType.Special then
|
if type and type==1 and skill.type~=BattleSkillType.Special then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -11204,9 +11216,14 @@ local passivityList = {
|
||||||
local ct = args[3]
|
local ct = args[3]
|
||||||
local v1 = args[4]
|
local v1 = args[4]
|
||||||
local r1 = args[5]
|
local r1 = args[5]
|
||||||
|
local buff2=nil
|
||||||
local onHit = function(target, damage, bCrit, finalDmg)
|
local onHit = function(target, damage, bCrit, finalDmg)
|
||||||
BattleUtil.RandomAction(p1,function()
|
BattleUtil.RandomAction(p1,function()
|
||||||
target:AddBuff(Buff.Create(role, BuffName.PropertyChange,r1, BattlePropList[pro], v1, ct))
|
buff2=Buff.Create(role, BuffName.PropertyChange,r1, BattlePropList[pro], v1, ct)
|
||||||
|
local aaa=BattleLogic.BuffMgr:HasBuff(target, BuffName.PropertyChange, function (buff) return buff.propertyName==buff2.propertyName and buff.Value==buff2.Value and buff.changeType==buff2.changeType end)
|
||||||
|
if not aaa then
|
||||||
|
target:AddBuff(buff2)
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
local onSkillCast = function(skill)
|
local onSkillCast = function(skill)
|
||||||
|
|
|
@ -31,8 +31,9 @@ function Monster:Init(data)
|
||||||
self.Event:ClearEvent()
|
self.Event:ClearEvent()
|
||||||
self.exileTargets={}--已经被放逐过的目标
|
self.exileTargets={}--已经被放逐过的目标
|
||||||
-- self.skillGroup = MSkillManager.CreateMSkillGroup(self, data.skill)
|
-- self.skillGroup = MSkillManager.CreateMSkillGroup(self, data.skill)
|
||||||
|
|
||||||
-- self.skillList=data.skill
|
-- self.skillList=data.skill
|
||||||
|
self.skillNum=#data.skill
|
||||||
self.skillGroupList = {}
|
self.skillGroupList = {}
|
||||||
for i = 1, #data.skill do
|
for i = 1, #data.skill do
|
||||||
-- LogError("---------------------"..data.skill[i].skillData.effect[1])
|
-- LogError("---------------------"..data.skill[i].skillData.effect[1])
|
||||||
|
|
|
@ -7,7 +7,7 @@ function MSkill:New()
|
||||||
return o
|
return o
|
||||||
end
|
end
|
||||||
|
|
||||||
function MSkill:Init(owner, group, index, skillData)
|
function MSkill:Init(owner, group, index, skillData,playerSkillIndex)
|
||||||
self.owner = owner
|
self.owner = owner
|
||||||
self.group = group
|
self.group = group
|
||||||
self.groupIndex = index
|
self.groupIndex = index
|
||||||
|
@ -16,7 +16,15 @@ function MSkill:Init(owner, group, index, skillData)
|
||||||
self.isAdd = false
|
self.isAdd = false
|
||||||
self.isRage = false
|
self.isRage = false
|
||||||
self.type = BattleSkillType.Monster
|
self.type = BattleSkillType.Monster
|
||||||
|
--后端传过来的数据最后一个是主角技能
|
||||||
|
if owner.position==100 then
|
||||||
|
if playerSkillIndex==self.owner.skillNum then
|
||||||
|
self.isPlayerSkill=true
|
||||||
|
else
|
||||||
|
self.isPlayerSkill=false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
self.curCastCount = 0
|
self.curCastCount = 0
|
||||||
self.maxCastCount = self.skillData.maxCount
|
self.maxCastCount = self.skillData.maxCount
|
||||||
-- LogError("monster skill id=="..skillData.effect[1])
|
-- LogError("monster skill id=="..skillData.effect[1])
|
||||||
|
|
|
@ -22,7 +22,7 @@ function MSkillGroup:Init(monster, groupIndex, groupData)
|
||||||
|
|
||||||
-- end
|
-- end
|
||||||
for i = 1, #self.skillGroupData do
|
for i = 1, #self.skillGroupData do
|
||||||
self.skillList[i] = MSkillManager.CreateMSkill(monster, self, i, self.skillGroupData[i])
|
self.skillList[i] = MSkillManager.CreateMSkill(monster, self, i, self.skillGroupData[i],groupIndex)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ function this.CreateMSkillGroup(monster, groupIndex, skillGroupData)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 创建一个技能
|
-- 创建一个技能
|
||||||
function this.CreateMSkill(monster, group, index, skilldata)
|
function this.CreateMSkill(monster, group, index, skilldata,groupIndex)
|
||||||
local owner = group:GetOwner()
|
local owner = group:GetOwner()
|
||||||
local groupIndex = group.groupIndex
|
local groupIndex = group.groupIndex
|
||||||
local position = owner:GetCamp() * 6 + owner:GetPosition()
|
local position = owner:GetCamp() * 6 + owner:GetPosition()
|
||||||
|
@ -41,7 +41,7 @@ function this.CreateMSkill(monster, group, index, skilldata)
|
||||||
if not this.MSkillList[position][groupIndex][index] then
|
if not this.MSkillList[position][groupIndex][index] then
|
||||||
this.MSkillList[position][groupIndex][index] = MSkill:New()
|
this.MSkillList[position][groupIndex][index] = MSkill:New()
|
||||||
end
|
end
|
||||||
this.MSkillList[position][groupIndex][index]:Init(monster, group, index, skilldata)
|
this.MSkillList[position][groupIndex][index]:Init(monster, group, index, skilldata,groupIndex)
|
||||||
|
|
||||||
return this.MSkillList[position][groupIndex][index]
|
return this.MSkillList[position][groupIndex][index]
|
||||||
end
|
end
|
||||||
|
|
|
@ -25,6 +25,7 @@ function Skill:Init(role, effectData, type, targets, isAdd, isRage,isTriggerJudg
|
||||||
self.isRage = isRage
|
self.isRage = isRage
|
||||||
self.isNotLoop= false
|
self.isNotLoop= false
|
||||||
self.targets={}
|
self.targets={}
|
||||||
|
self.skillDamage=0
|
||||||
if isTriggerJudge~=nil then
|
if isTriggerJudge~=nil then
|
||||||
self.isTriggerJudge=isTriggerJudge
|
self.isTriggerJudge=isTriggerJudge
|
||||||
else
|
else
|
||||||
|
@ -150,6 +151,7 @@ function Skill:EndSkill()
|
||||||
-- 结束回调
|
-- 结束回调
|
||||||
self.isTriggePassivity=false
|
self.isTriggePassivity=false
|
||||||
self.triggerPassivityId={}
|
self.triggerPassivityId={}
|
||||||
|
self.skillDamage=0
|
||||||
if self.castDoneFunc then self.castDoneFunc() end
|
if self.castDoneFunc then self.castDoneFunc() end
|
||||||
self.targets={}
|
self.targets={}
|
||||||
end)
|
end)
|
||||||
|
|
Loading…
Reference in New Issue