From 59f131e8242de4f155a87e0025059fe84d7d0d3f Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Wed, 21 Jul 2021 16:33:23 +0800 Subject: [PATCH 01/10] =?UTF-8?q?[=E6=88=98=E6=96=97]=3D=3D=3D=3D=3D=3D=3D?= =?UTF-8?q?=3D=3D=3D=3D=3D=E8=A2=AB=E5=8A=A8338=EF=BC=8C339=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Battle/Logic/Base/Passivity.lua | 57 +++++++++++++++++++ .../Modules/Battle/Logic/Role/RoleLogic.lua | 1 + .../~Lua/Modules/Battle/Logic/Role/Skill.lua | 7 ++- 3 files changed, 63 insertions(+), 2 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua index da9ef5c07f..863816b2f3 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua @@ -7844,8 +7844,65 @@ local passivityList = { end BattleLogic.Event:AddEvent(BattleEventName.BattleRoundStart, onRoundStart,nil,nil,role) + end, + -- 受到直接伤害的[a]%转换为护甲 + -- a[float] + [338] = function(role, args) + local f1 = args[1] + local onBeHit = function(caster, damage, bCrit, finalDmg, damageType, skill) + --如果角色死亡就不会反弹伤害 + if role:IsDead() then + return + end + --不是真实伤害 + if not skill and not isDirect then + return + end + local rDamage = f1 * damage + role:AddBuff(Buff.Create(role, BuffName.Shield,0, ShieldTypeName.NormalReduce, rDamage, 0)) + + end + role.Event:AddEvent(BattleEventName.RoleBeHit, onBeHit,nil,nil,role) + end, + --每次行动未造成击杀,则该行动主目标造成其[a][b]%的间接伤害 + [339] = function(role, args) + local p1 = args[1] + local v1 = args[2] + local isNoDie=true + --获取主目标 + local onSkillCast = function(skill) + if not skill then + return + end + if skill and not skill.isTriggerJudge and judge==1 then + return + end + local list=skill:GetDirectTargets() + local target=RoleManager.GetAggroHero(role,list) + if target and BattleUtil.LengthOfTable(target)>0 then + role.curMainTarget=target[1] + end + end + role.Event:AddEvent(BattleEventName.SkillCastBefore, onSkillCast,nil,nil,role) + + local onRoleKill=function(defRole,skill) + isNoDie=false + end + local onTurnStar=function(role) + + role.Event:AddEvent(BattleEventName.RoleKill,onRoleKill,nil,nil,role) + end + role.Event:AddEvent(BattleEventName.RoleTurnStart, onTurnStar,nil,nil,role) + local onTurnEnd=function(role) + role.Event:RemoveEvent(BattleEventName.RoleKill,onRoleKill,nil,nil,role) + if isNoDie then + local damage=floor(BattleUtil.FP_Mul(role.curMainTarget:GetRoleData(p1),v1)) + BattleUtil.FinalDamage(nil,role,role.curMainTarget,damage) + end + end + role.Event:AddEvent(BattleEventName.RoleTurnEnd, onTurnStar,nil,nil,role) end, } return passivityList \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua index b9d53fd630..6ef28271b3 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua @@ -29,6 +29,7 @@ function RoleLogic:Init(uid, data, position) self.isDead = self:GetRoleData(RoleDataName.Hp) <= 0 self.isRealDead = self.isDead self.killDamage = 0 --致死伤害 + self.killRole=nil --击杀英雄 self.camp = data.camp --阵营 0:我方 1:敌方 self.name = data.name self.element = data.element diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/Skill.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/Skill.lua index 7d723d48e3..8b3e55be94 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/Skill.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/Skill.lua @@ -62,7 +62,6 @@ function Skill:Cast(func) self.castDoneFunc = func self.isTriggePassivity=false self.triggerPassivityId={} - -- 技能效果生效 if self.effectCaster then --放技能前判断是否有目标,没有就不会放技能,直接执行技能回调 by 王振兴 2021/03/26 @@ -88,7 +87,11 @@ function Skill:Cast(func) --技能的施法时间计算,根据当前目标id关联的持续时间,取其中时间最长的一个 local duration = self.hitTime + self.continueTime -- 结算时间向后延长0.2秒,避免在效果结算完成前就结束了技能释放 - BattleLogic.WaitForTrigger(duration + 0.8, function() + local time=0.8 + if self.id==1282 then + time=2.5 + end + BattleLogic.WaitForTrigger(duration + time, function() self.owner.Event:DispatchEvent(BattleEventName.SkillCastEnd, self) BattleLogic.Event:DispatchEvent(BattleEventName.SkillCastEnd, self) From 08d02a0b6d6ddea1812c8ce2b46ab90a891beaca Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Thu, 12 Aug 2021 15:11:38 +0800 Subject: [PATCH 02/10] =?UTF-8?q?[=E6=88=98=E6=96=97]=3D=3D=3D=3D=3D=3D=3D?= =?UTF-8?q?=3D=3D=3D=E5=90=8E=E7=BB=AD=E7=B4=AB=E5=BA=9C=E7=A5=9E=E5=8D=B0?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../~Lua/Modules/Battle/Logic/Base/Buff.lua | 2 + .../Modules/Battle/Logic/Base/Passivity.lua | 222 ++++++++++++++++-- .../~Lua/Modules/Battle/Logic/Buff/Blood.lua | 47 ++++ .../Modules/Battle/Logic/Buff/Blood.lua.meta | 7 + .../~Lua/Modules/Battle/Logic/Buff/DOT.lua | 2 +- .../Battle/Logic/Misc/BattleDefine.lua | 8 +- .../Modules/Battle/Logic/Misc/BattleUtil.lua | 13 +- .../Modules/Battle/Logic/Role/RoleLogic.lua | 5 +- .../Modules/Battle/View/Unit/BuffCtrl.lua | 3 + 9 files changed, 281 insertions(+), 28 deletions(-) create mode 100644 Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua create mode 100644 Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua.meta diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Buff.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Buff.lua index 8273577a6a..ab1d69a952 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Buff.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Buff.lua @@ -15,6 +15,7 @@ local BuffRegister = { [BuffName.NoDead] = "NoDead", [BuffName.Aura] = "Aura", [BuffName.Brand] = "Brand", + [BuffName.Blood] = "Blood", } @@ -168,6 +169,7 @@ function BuffManager:AddBuff(target, buff) buff.roundDuration = buff.duration buff.roundInterval = buff.interval buff.caster.Event:DispatchEvent(BattleEventName.BuffCaster, buff) + buff.target.Event:DispatchEvent(BattleEventName.BuffBeAdd, buff) -- 用于记录统计 BattleLogic.Event:DispatchEvent(BattleEventName.RecordBuff, buff.caster, buff.target, buff) end diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua index 863816b2f3..0ea6e17cf4 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua @@ -2760,13 +2760,16 @@ local passivityList = { end, -- 受到[a]状态敌人攻击时受到伤害[b]改变[c]% - -- a[持续伤害状态]b[改变类型]c[float] + -- a[持续伤害状态]b[改变类型]c[float],d[int 1:直接伤害 ](d 不填/0不区别是否为直接伤害) [140] = function(role, args) local dot = args[1] local ct = args[2] local f1 = args[3] - - local onPassiveBeDamaging = function(func, caster, damage) + local type = args[4] + local onPassiveBeDamaging = function(func, caster, damage,skill) + if type==1 and not skill then + return + end if BattleLogic.BuffMgr:HasBuff(caster, BuffName.DOT, function(buff) return buff.damageType == dot end,role,dot) then local dmgDeduction = damage - floor(BattleUtil.ErrorCorrection(BattleUtil.CountValue(damage, f1, ct))) if func then func(dmgDeduction) end @@ -3311,25 +3314,25 @@ local passivityList = { role.Event:AddEvent(BattleEventName.BeSkillCastEnd, onBeSkillCastEnd,nil,nil,role) end, - -- 攻击目标时目标身上每有1种异常状态(包括麻痹、眩晕、沉默、灼烧、中毒)都会使对其造成的直接伤害提高,异常状态数量乘以[a]%。 - -- a[float] + -- 攻击目标时目标身上每有1种异常状态(包括麻痹、眩晕、沉默、灼烧、中毒)都会使对其造成的直接伤害提高,异常状态数量乘以[a]%。,[b]是否包含dot类buff(b 不填/0为包含 ) + -- a[float],b[int 1:不包含] [161] = function(role, args,id,judge) local f1 = args[1] - + local isDot = args[2] + if not isDot then + isDot=0 + end --之前为根据异常效果的数量改为根据异常效果的类型 by:王振兴 local function onPassiveDamaging(damagingFunc, target, damage,skill) if skill and not skill.isTriggerJudge and judge==1 then return end - --local list = BattleLogic.BuffMgr:GetBuff(target, function(buff) - --return buff.type == BuffName.DOT or buff.type == BuffName.Control - --end) local dotList={} local controlList={} local list=BattleLogic.BuffMgr:GetBuff(target) for i = 1, #list do local buff=list[i] - if buff.type== BuffName.DOT and buff.damageType and dotList and not BattleUtil.ChecklistIsContainValue(dotList,buff.damageType) then + if isDot==0 and buff.type== BuffName.DOT and buff.damageType and dotList and not BattleUtil.ChecklistIsContainValue(dotList,buff.damageType) then table.insert(dotList,buff.damageType) end @@ -7239,7 +7242,7 @@ local passivityList = { end, -- 技能施加控制状态失败,回复自身[a]点怒气() -- a[int] - [318] = function(role, args) + [318] = function(role, args,id,judge) local f1 = args[1] local ctrlNum=0 @@ -7428,7 +7431,7 @@ local passivityList = { end, --释放技能怒气不足时,损失自身([a]-我方活着的[b]系神将数)%生命*不足怒气数 后释放技能 --a[int],b[int] - [324]=function(role,args) + [324]=function(role,args,id,judge) local max=args[1] local ele=args[2] local onRoleCastSkillBrfore=function(caster) @@ -7455,7 +7458,7 @@ local passivityList = { end, -- 被自身控制[a]的敌方目标,己方[b]阵营神将对其造成伤害增加[c]% -- a[int 控制状态] b[int] c[float] - [325] = function(role, args) + [325] = function(role, args,id,judge) local f1 = args[1] local ele = args[2] local f2 = args[3] @@ -7743,7 +7746,7 @@ local passivityList = { end, -- 武将怒气为[a]点时即可释放技能,释放技能消耗当前所有怒气 超过[c]点的怒气部分 每消耗1点怒气技能伤害为[b]%(c不填默认为4) -- a[int]b[float],c[int] - [336] = function(role, args) + [336] = function(role, args,id,judge) local i1 = args[1] local f1 = args[2] local num = args[3] @@ -7847,7 +7850,7 @@ local passivityList = { end, -- 受到直接伤害的[a]%转换为护甲 -- a[float] - [338] = function(role, args) + [338] = function(role, args,id,judge) local f1 = args[1] local onBeHit = function(caster, damage, bCrit, finalDmg, damageType, skill) --如果角色死亡就不会反弹伤害 @@ -7858,15 +7861,15 @@ local passivityList = { if not skill and not isDirect then return end - - local rDamage = f1 * damage - role:AddBuff(Buff.Create(role, BuffName.Shield,0, ShieldTypeName.NormalReduce, rDamage, 0)) + local rDamage =floor(f1 * damage) + role:AddBuff(Buff.Create(role, BuffName.Blood,0, rDamage)) end role.Event:AddEvent(BattleEventName.RoleBeHit, onBeHit,nil,nil,role) end, --每次行动未造成击杀,则该行动主目标造成其[a][b]%的间接伤害 - [339] = function(role, args) + --a[int 属性],b[float] + [339] = function(role, args,id,judge) local p1 = args[1] local v1 = args[2] local isNoDie=true @@ -7890,7 +7893,6 @@ local passivityList = { isNoDie=false end local onTurnStar=function(role) - role.Event:AddEvent(BattleEventName.RoleKill,onRoleKill,nil,nil,role) end role.Event:AddEvent(BattleEventName.RoleTurnStart, onTurnStar,nil,nil,role) @@ -7898,11 +7900,187 @@ local passivityList = { local onTurnEnd=function(role) role.Event:RemoveEvent(BattleEventName.RoleKill,onRoleKill,nil,nil,role) if isNoDie then - local damage=floor(BattleUtil.FP_Mul(role.curMainTarget:GetRoleData(p1),v1)) + local damage=floor(BattleUtil.FP_Mul(role.curMainTarget:GetRoleData(BattlePropList[p1]),v1)) BattleUtil.FinalDamage(nil,role,role.curMainTarget,damage) end + isNoDie=true end - role.Event:AddEvent(BattleEventName.RoleTurnEnd, onTurnStar,nil,nil,role) + role.Event:AddEvent(BattleEventName.RoleTurnEnd, onTurnEnd,nil,nil,role) + end, + -- 为己方单位恢复怒气是,为主目标添加[a] 属性[b] [c]%的效果,持续[d]回合,每回合最多生效一次 + -- a[int 改变类型] b[int] c[float] d[int] + [340] = function(role, args,id,judge) + local ct = args[1] + local p1 = args[2] + local v1=args[3] + local round=args[4] + local isTurn=false + local onRoleHit = function(caster, target, deltaRage, countType, value) + if not isTurn then + return + end + + if caster~=role then + return + end + if target.camp~=role.camp or countType~=CountTypeName.Add then + return + end + target:AddBuff(Buff.Create(role, BuffName.PropertyChange,round, BattlePropList[p1],v1, ct)) + isTurn=false + end + BattleLogic.Event:AddEvent(BattleEventName.RecordRageChange, onRoleHit,nil,nil,role) + + + local onRoleTurnStart=function() + isTurn=true + end + BattleLogic.Event:AddEvent(BattleEventName.BattleRoundStart,onRoleTurnStart,nil,nil,role) + end, + -- 造成直接伤害时,自身每有[a]点怒气,造成的伤害增加[b]%,最高为[c]% + -- a[int],b[float],c[float] + [341] = function(role, args,id,judge) + local num = args[1] + local f1 = args[2] + local f2 = args[3] + + local count=0 + local OnSkillCast=function(skill) + count=floor(role.Rage/num) + end + role.Event:AddEvent(BattleEventName.ActionOperateAngerBefore,OnSkillCast,nil,nil,role) + local OnPassiveDamaging = function(damagingFunc, target, damage,skill) + if not skill then + return + end + + local add=count*f1 + if add>f2 then + add=f2 + end + + damagingFunc(-floor(BattleUtil.FP_Mul(add,damage))) + end + role.Event:AddEvent(BattleEventName.PassiveDamaging, OnPassiveDamaging,nil,nil,role) + end, + --回合行动形成追击时,每次追击造成的伤害增加[a]% + --a[float] + [342] = function(role, args,id,judge) + local p1 = args[1] + local isTurn=false + + -- 如果是行动回合追加的技能的伤害 + local onPassiveDamaging = function(func, target, damage, skill) + + if not skill then + return + end + + if not skill.isAdd then + return + end + if isTurn==false then + return + end + if not skill.isTriggerJudge and judge==1 then + return + end + + if skill.type==BattleSkillType.Special or skill.type==BattleSkillType.Extra or skill.type==BattleSkillType.Normal then + func(-floor(BattleUtil.FP_Mul(p1,damage))) + end + end + role.Event:AddEvent(BattleEventName.PassiveDamaging, onPassiveDamaging,nil,nil,role) + + local onTurnStar=function(role) + isTurn=true + end + role.Event:AddEvent(BattleEventName.RoleTurnStart, onTurnStar,nil,nil,role) + + local onTurnEnd=function(role) + isTurn=false + end + role.Event:AddEvent(BattleEventName.RoleTurnEnd, onTurnEnd,nil,nil,role) + end, + --回合结束时,与自己怒气相同的己方单位同时回复[a]点怒气 + --a[int] + [343]=function(role,args,id,judge) + local num=args[1] + local onRoundChange=function(round) + if round==0 then + return + end + local list = RoleManager.Query(function(v) return role.camp == v.camp end) + for _, r in pairs(list) do + if r.Rage==role.Rage and r~=role then + BattleUtil.CalRage(role,r,num,CountTypeName.Add) + end + end + BattleUtil.CalRage(role,role,num,CountTypeName.Add) + end + BattleLogic.Event:AddEvent(BattleEventName.BattleRoundEnd, onRoundChange,nil,nil,role) + end, + --释放技能时,对控制成功的目标,技能的直接伤害增加[a]%;失败使目标 属性[b] 改变[c] [d]% 持续[e]回合 + --a[float],b[int 属性id],c[int 改变类型],d[float],e[int] + [344]=function(role,args,id,judge) + local p1=args[1] + local pro = args[2] + local ct = args[3] + local v1 = args[4] + local round = args[5] + local curSkill=nil + --添加buff成功 + local OnBuffBeAdd=function(buff) + if not buff or buff.caster~=role or buff.type~=BuffName.Control then + return + end + --添加技能额外伤害 + if curSkill then + local finalDamage=floor(role.superSkillDamage*p1) + BattleUtil.FinalDamage(nil,role,buff.target,finalDamage) + end + end + --添加buff失败 + local OnBuffAddFail=function(buff) + if not buff or buff.caster~=role or buff.type~=BuffName.Control then + return + end + buff.target:AddBuff(Buff.Create(role, BuffName.PropertyChange, round, BattlePropList[pro],v1, ct)) + end + + local OnSkillCast=function(skill) + if skill.type~=BattleSkillType.Special then + return + end + curSkill=skill + BattleLogic.Event:AddEvent(BattleEventName.RoleAddBuffFail,OnBuffAddFail,nil,nil,role) + role.Event:AddEvent(BattleEventName.BuffCaster,OnBuffBeAdd,nil,nil,role) + end + role.Event:AddEvent(BattleEventName.SkillCast,OnSkillCast,nil,nil,role) + + local OnSkillCastEnd=function(skill) + if skill.type~=BattleSkillType.Special then + return + end + curSkill=nil + BattleLogic.Event:RemoveEvent(BattleEventName.RoleAddBuffFail,OnBuffAddFail,nil,nil,role) + role.Event:RemoveEvent(BattleEventName.BuffCaster,OnBuffBeAdd,nil,nil,role) + end + role.Event:AddEvent(BattleEventName.SkillCastEnd,OnSkillCastEnd,nil,nil,role) + end, + --持续伤害效果[a]结算时,对目标造成其[b][c]%的伤害 + -- a[int dot类型id] b[int 属性id],c[float] + [345]=function(role,args) + local type=args[1] + local pro=args[2] + local v1=args[3] + local OnBuffEnd=function(buff) + if buff and buff.caster==role and buff.damageType==type then + local val = floor(BattleUtil.FP_Mul(v1, buff.target:GetRoleData(BattlePropList[pro]))) + BattleUtil.FinalDamage(nil,role,buff.target, val) + end + end + BattleLogic.Event:AddEvent(BattleEventName.DotBuffEnd, OnBuffEnd,nil,nil,role) end, } return passivityList \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua new file mode 100644 index 0000000000..507c41af3a --- /dev/null +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua @@ -0,0 +1,47 @@ +Blood = Buff:New() + +--初始化Buff,通过传入一些自定义参数控制成长相关的数值 +function Blood:SetData(...) + + -- 刷新排序等级 + self.bloodValue=... + self.sort = 4 +end + + +--初始化后调用一次 +function Blood:OnStart() + self.target.bloodShield = self + +end + +--间隔N帧触发,返回true时表示继续触发,返回false立刻触发OnEnd +function Blood:OnTrigger() + return true +end + +--效果结束时调用一次 +function Blood:OnEnd() + self.target.bloodShield = nil + self.bloodValue=0 +end +--计算血甲 +function Blood:CountBloodValue(damage) + local finalDamage=0 + self.bloodValue=self.bloodValue-damage + if self.bloodValue<=0 then + self.disperse=true + end + finalDamage=self.bloodValue + LogError(" 伤害== "..damage.." 盾值=="..self.bloodValue.." 扣血:"..finalDamage) + return finalDamage +end + + + +--只有当cover字段为true时触发,返回true则被新效果覆盖 +function Blood:OnCover(newBuff) + return true +end + +return Blood \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua.meta b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua.meta new file mode 100644 index 0000000000..e78ce2e1cb --- /dev/null +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 489a333956a8af142befcc171adc4334 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/DOT.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/DOT.lua index a1e36a0b1f..56fbb0f88d 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/DOT.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/DOT.lua @@ -43,7 +43,7 @@ end --效果结束时调用一次 function DOT:OnEnd() - + BattleLogic.Event:DispatchEvent(BattleEventName.DotBuffEnd, self) end --只有当cover字段为true时触发,返回true则被新效果覆盖 diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua index 7127593274..d0af5c536a 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua @@ -131,6 +131,7 @@ BattleEventName = { BuffStart = indexAdd(), BuffDodge = indexAdd(), BuffTrigger = indexAdd(), + BuffBeAdd=indexAdd(), BuffEnd = indexAdd(), BuffCountChange = indexAdd(), BuffCover = indexAdd(), @@ -153,9 +154,10 @@ BattleEventName = { RoleCastSkillBefore = indexAdd(), --护盾buff消失以后 ShieldBuffEnd=indexAdd(), - --治疗效果导入 + --治疗效果结束 HotBuffEnd=indexAdd(), - + --dot buff结束 + DotBuffEnd=indexAdd(), -- 战斗记录用 RecordDamage = indexAdd(), -- 伤害 RecordTreat = indexAdd(), -- 治疗 @@ -170,6 +172,7 @@ BattleEventName = { RecordRageChange = indexAdd(), -- 怒气改变时 ActionOperateAngerAfter =indexAdd(),--角色行动操作怒气后 HitRoleInBurn = indexAdd(), --击中在燃烧状态得敌人 + ActionOperateAngerBefore =indexAdd(),--角色行动操作怒气前 } BattleMaxFrame = 1000000 @@ -218,6 +221,7 @@ BuffName = { NoDead = 10, Aura = 11, Brand = 12, + Blood = 13, } DotType = { diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua index 87b5d7024d..9da13789fb 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua @@ -676,7 +676,17 @@ function BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageTy return end if damage < 0 then damage = 0 end - local finalDmg = defRole.data:SubValue(RoleDataName.Hp, damage) + + if skill and skill.type==BattleSkillType.Special then + skill.owner.superSkillDamage=damage + end + --计算血量防护 + local realDamage=0 + --血量防护只会防直接伤害 + if defRole.bloodShield and skill then + realDamage=math.abs(defRole.bloodShield:CountBloodValue(damage)) + end + local finalDmg = defRole.data:SubValue(RoleDataName.Hp,realDamage) if finalDmg >= 0 then if defRole:GetRoleData(RoleDataName.Hp) <= 0 and not defRole:IsDead() then defRole:SetDead(damage) @@ -973,6 +983,7 @@ function BattleUtil.RandomControl(rand, ctrl, caster, target, round) target:AddBuff(buff) end) if not isAdd then + buff.target=target BattleLogic.Event:DispatchEvent(BattleEventName.RoleAddBuffFail,buff) end return isAdd diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua index 9c99cf5bc4..b3e75b1651 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua @@ -29,6 +29,7 @@ function RoleLogic:Init(uid, data, position) self.isDead = self:GetRoleData(RoleDataName.Hp) <= 0 self.isRealDead = self.isDead self.killDamage = 0 --致死伤害 + self.superSkillDamage = 0 --技能伤害 self.killRole=nil --击杀英雄 self.camp = data.camp --阵营 0:我方 1:敌方 self.name = data.name @@ -76,7 +77,7 @@ function RoleLogic:Init(uid, data, position) self.reliveFilter = true -- 控制复活的标志位,置为false角色将不再享受复活效果 self.reliveHPF = 1 self.reliveCaster = nil - + self.bloodShield = nil self.IsCanAddSkill = true -- 是否可以追加技能 self.mustHit=false --必定命中 self.mustCrit=false --必定暴击 @@ -345,7 +346,7 @@ function RoleLogic:SkillCast(skill, func) _CastDone() return end - + self.Event:DispatchEvent(BattleEventName.ActionOperateAngerBefore,self) -- 没有麻痹,释放普通攻击 if (skill.type == BattleSkillType.Normal or skill.type ==BattleSkillType.ChaosNormal) and not self.ctrl_palsy then diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BuffCtrl.lua b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BuffCtrl.lua index 1e6407aab6..a5f7ab3e16 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BuffCtrl.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BuffCtrl.lua @@ -10,6 +10,7 @@ local BuffTypeToConfigType = { [BuffName.Curse] = 7, [BuffName.KylinMark] = 8, [BuffName.Exile] = 9, + [BuffName.Blood] = 13, } local function _GetPropChangeBuffCType(pName) for cType, pn in ipairs(BattlePropList) do @@ -45,6 +46,8 @@ local function _GetBuffEffectConfig(buff) cType = 1 elseif bType== BuffName.Exile then cType = 1 + elseif bType== BuffName.Blood then + cType = 1 end local type = BuffTypeToConfigType[bType] From 11a39abcd41f0ba6b0f0e3e9bffbbce7548cbdd6 Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Thu, 12 Aug 2021 15:42:31 +0800 Subject: [PATCH 03/10] =?UTF-8?q?[=E6=88=98=E6=96=97]=3D=3D=3D=3D=3D=3D=3D?= =?UTF-8?q?=3D=3D=3D=E4=BC=A4=E5=AE=B3=E4=BF=AE=E6=94=B9=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua index 9da13789fb..f14f59eee8 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua @@ -681,7 +681,7 @@ function BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageTy skill.owner.superSkillDamage=damage end --计算血量防护 - local realDamage=0 + local realDamage=damage --血量防护只会防直接伤害 if defRole.bloodShield and skill then realDamage=math.abs(defRole.bloodShield:CountBloodValue(damage)) From 08ecd82227d5222da2971102117bb15a5401f68c Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Tue, 14 Sep 2021 19:58:01 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E3=80=90=E6=88=98=E6=96=97=E3=80=91=3D?= =?UTF-8?q?=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=E8=A2=AB=E5=8A=A8346=20?= =?UTF-8?q?=20347=20=20348=20=20349=20=20350=20=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Battle/Logic/Base/Passivity.lua | 121 ++++++++++++++++++ .../Modules/Battle/Logic/Misc/BattleUtil.lua | 12 ++ .../Modules/Battle/Logic/Role/RoleLogic.lua | 3 +- 3 files changed, 135 insertions(+), 1 deletion(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua index 37185827e1..f9beb32329 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua @@ -8147,5 +8147,126 @@ local passivityList = { end BattleLogic.Event:AddEvent(BattleEventName.DotBuffEnd, OnBuffEnd,nil,nil,role) end, + --技能对[a]阵营/职业目标 伤害[b]改变[c]% ,[d]类型(1:阵营 2:职业) + -- a[int] b[int],c[float],d[int] + [346]=function(role,args,id,judge) + local v1=args[1] + local ct=args[2] + local v2=args[3] + local type=args[4] + local OnPassiveDamaging = function(damagingFunc, defRole, damage,skill) + if skill and not skill.isTriggerJudge and judge==1 then + return + end + if not defRole then + return + end + if defRole.camp==role.camp then + return + end + --如果不是限定阵营 + if type==1 and defRole.element~=v1 then + return + end + --如果不是限定职业 + if type==2 and defRole.professionId~=v1 then + return + end + damagingFunc(-floor(v2 * damage)) + end + role.Event:AddEvent(BattleEventName.PassiveDamaging, OnPassiveDamaging,nil,nil,role) + end, + --敌方单位死亡立即回复满血(没有表现) + [347]=function(role,args,id,judge) + + local onRoleHit = function(deadRole) + if deadRole.camp==role.camp then + return + end + --BattleLogic.WaitForTrigger(BattleLogic.GameDeltaTime, function () + local addHp=role:GetRoleData(RoleDataName.MaxHp) - role:GetRoleData(RoleDataName.Hp) + role.data:AddValue(RoleDataName.Hp,addHp) + --end) + end + BattleLogic.Event:AddEvent(BattleEventName.RoleRealDead, onRoleHit,nil,nil,role) + end, + --第[a]回合结束后,自身血量未降低到[b]%,[c]属性[d]改变 [e]% 持续[f]回合,[g]属性[h]改变 [i]% 持续[j]回合(g,h,i,j任一参数不填都不会生效) + --a[int],b[float],c[int 属性],d[int 改变类型],e[float],f[int], g[int 属性],h[int,改变类型],i[float],j[int] + [348]=function(role,args,id,judge) + local round = args[1] + local prop = args[2] + local pro1 = args[3] + local ct1 = args[4] + local v1 = args[5] + local r1 = args[6] + local pro2 = args[7] + local ct2 = args[8] + local v2 = args[9] + local r2 = args[10] + local OnRoundEnd=function(curRound) + if curRound~= round then + return + end + local curProp=BattleUtil.GetHPPencent(role) + if curProp<=prop then + return + end + + if r1 and pro1 and v1 and ct1 then + role:AddBuff(Buff.Create(role,BuffName.PropertyChange, r1, BattlePropList[pro1], v1, ct1)) + end + + if r2 and pro2 and v2 and ct2 then + role:AddBuff(Buff.Create(role,BuffName.PropertyChange, r2, BattlePropList[pro2], v2, ct2)) + end + end + BattleLogic.Event:AddEvent(BattleEventName.BattleRoundEnd,OnRoundEnd) + end, + --每回合最多减少[a]点怒气(不受放逐影响) + --a[int] + [349]=function(role,args,id,judge) + local maxNum=args[1] + role.RoundMaxSubRage=maxNum + local OnRoundEnd=function(curRound) + role.AllSubRage=0 + end + BattleLogic.Event:AddEvent(BattleEventName.BattleRoundEnd,OnRoundEnd) + end, + -- 第[a]回合中,敌人受到的任何伤害会对其他敌人造成该伤害[b]%的间接伤害 + -- a[int],b[float] + [350] = function(role, args,id,judge) + + local i1 = args[1] + local f1 = args[2] + + local function OnDamage(func, atkRole, defRole, damage, skill, dotType, bCrit, damageType) + if skill==nil then + return + end + if skill and not skill.isTriggerJudge and judge==1 then + return + end + if defRole.camp ~= role.camp then + if skill or dotType then + local list = RoleManager.Query(function(r) return r.camp == defRole.camp and r ~= defRole end) + for _, r in ipairs(list) do + local dd = floor(BattleUtil.ErrorCorrection(damage* f1)) + BattleUtil.FinalDamage(nil, atkRole, r, dd) + end + end + end + end + + local function onRoundChange(curRound) + if curRound == i1 then + BattleLogic.Event:AddEvent(BattleEventName.FinalDamage, OnDamage) + elseif curRound == i1 + 1 then + BattleLogic.Event:RemoveEvent(BattleEventName.FinalDamage, OnDamage) + end + end + BattleLogic.Event:AddEvent(BattleEventName.BattleRoundChange, onRoundChange) + + end, + } return passivityList \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua index f57e703b36..42d70151fd 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua @@ -654,8 +654,20 @@ function BattleUtil.CalRage(caster, target, value, countType) return end local lastRage=target.Rage + --如果每回合减的怒气超过了每回合上限就不再减怒 + if (countType==3 or countType==4) and target.RoundMaxSubRage~=0 and target.RoundMaxSubRage<=target.AllSubRage then + return + end + --这个减的怒气+已经间的怒气> 怒气限制 + if (countType==3 or countType==4) and target.RoundMaxSubRage~=0 and value+target.AllSubRage>target.RoundMaxSubRage then + value=target.RoundMaxSubRage-target.AllSubRage + end -- 操作怒气 local deltaRage = target:AddRage(value, countType) + if (countType==3 or countType==4) and target.RoundMaxSubRage~=0 then + target.AllSubRage=target.AllSubRage-deltaRage + end + BattleLogic.Event:DispatchEvent(BattleEventName.RecordRageChange, caster, target, deltaRage,countType,value,lastRage) -- 用于记录统计 BattleLogic.Event:DispatchEvent(BattleEventName.RecordRage, caster, target, deltaRage) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua index 42bc8685de..a343c8cdda 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Role/RoleLogic.lua @@ -62,7 +62,8 @@ function RoleLogic:Init(uid, data, position) self.aiOrder = data.ai self.aiIndex = 1 self.aiTempCount = 0 - + self.RoundMaxSubRage=0 --每回合最多减少怒气 + self.AllSubRage =0 -- 每回合减少的怒气 self.IsDebug = false self.enemyType = EnemyType.normal self.lockTarget = nil --嘲讽 From 4ee0741896665578a2919f34a5aee90b571772ed Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Wed, 15 Sep 2021 11:23:04 +0800 Subject: [PATCH 05/10] =?UTF-8?q?[=E6=88=98=E6=96=97]=3D=3D=3D=3D=3D=3D=3D?= =?UTF-8?q?=3D=3D=3D=3D=3D=3D=3D=E8=A2=AB=E5=8A=A8338=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=20=E6=8A=A4=E7=94=B2=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prefabs/UI/Battle/BattlePanel.prefab | 597 ++++++++++++------ .../Modules/Battle/Logic/Base/Passivity.lua | 5 +- .../~Lua/Modules/Battle/Logic/Buff/Blood.lua | 15 +- .../Battle/Logic/Misc/BattleDefine.lua | 3 +- .../Modules/Battle/Logic/Misc/BattleUtil.lua | 1 + .../Modules/Battle/View/Unit/EnemyView.lua | 10 +- .../Modules/Battle/View/Unit/PlayerView.lua | 11 + 7 files changed, 450 insertions(+), 192 deletions(-) diff --git a/Assets/ManagedResources/Prefabs/UI/Battle/BattlePanel.prefab b/Assets/ManagedResources/Prefabs/UI/Battle/BattlePanel.prefab index 1834ebbc0e..ddeab9b7d4 100644 --- a/Assets/ManagedResources/Prefabs/UI/Battle/BattlePanel.prefab +++ b/Assets/ManagedResources/Prefabs/UI/Battle/BattlePanel.prefab @@ -54292,6 +54292,80 @@ Transform: m_Father: {fileID: 266399697868850741} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1273417143258310486 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 466208108519372939} + - component: {fileID: 745351126363841964} + - component: {fileID: 4289847692326243877} + m_Layer: 5 + m_Name: yujia + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &466208108519372939 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1273417143258310486} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7445151958430435848} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.05, y: 0} + m_SizeDelta: {x: 112, y: 11} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &745351126363841964 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1273417143258310486} + m_CullTransparentMesh: 0 +--- !u!114 &4289847692326243877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1273417143258310486} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 46766934c8cf3ca45bdcbcd83f855548, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!1 &1283844563334256464 GameObject: m_ObjectHideFlags: 0 @@ -82119,6 +82193,7 @@ RectTransform: m_Children: - {fileID: 2874419575757642720} - {fileID: 2874419575420701304} + - {fileID: 9111004418300883058} m_Father: {fileID: 1044302835} m_RootOrder: 11 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -88023,6 +88098,80 @@ Canvas: m_SortingLayerID: 0 m_SortingOrder: 1 m_TargetDisplay: 0 +--- !u!1 &3105172307472740040 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9111004418300883058} + - component: {fileID: 2205137752606943407} + - component: {fileID: 3470501508636922347} + m_Layer: 5 + m_Name: yujia + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9111004418300883058 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3105172307472740040} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2874419575473712772} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.05, y: 0} + m_SizeDelta: {x: 112, y: 11} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2205137752606943407 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3105172307472740040} + m_CullTransparentMesh: 0 +--- !u!114 &3470501508636922347 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3105172307472740040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 46766934c8cf3ca45bdcbcd83f855548, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 0.562 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!1 &3183191374453209385 GameObject: m_ObjectHideFlags: 0 @@ -93124,6 +93273,80 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3420603192968489204 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1123898189538097250} + - component: {fileID: 3740464128198734159} + - component: {fileID: 4659976856417811549} + m_Layer: 5 + m_Name: yujia + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1123898189538097250 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3420603192968489204} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: -4561720786966416003} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.05, y: 0} + m_SizeDelta: {x: 112, y: 11} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3740464128198734159 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3420603192968489204} + m_CullTransparentMesh: 0 +--- !u!114 &4659976856417811549 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3420603192968489204} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 46766934c8cf3ca45bdcbcd83f855548, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 0 + m_FillAmount: 0.524 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 --- !u!1 &3462277647250853472 GameObject: m_ObjectHideFlags: 0 @@ -177775,6 +177998,7 @@ RectTransform: m_Children: - {fileID: 9157988692038345874} - {fileID: 4790868156847007000} + - {fileID: 466208108519372939} m_Father: {fileID: -6754620520668838389} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -219747,6 +219971,7 @@ RectTransform: m_Children: - {fileID: -8417139988263449769} - {fileID: 5658755082352509955} + - {fileID: 1123898189538097250} m_Father: {fileID: 6297374445036456370} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -235477,16 +235702,6 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 213509966} m_Modifications: - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_Name - value: Hero - objectReference: {fileID: 0} - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - target: {fileID: 2535060995107670383, guid: e356d5948e4971f499cfe38db3551f59, type: 3} propertyPath: m_LocalPosition.x @@ -235592,30 +235807,15 @@ PrefabInstance: propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_Name + value: Hero objectReference: {fileID: 0} - - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 - objectReference: {fileID: 0} - - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_IsActive + value: 0 objectReference: {fileID: 0} - target: {fileID: 2320031818352649172, guid: e356d5948e4971f499cfe38db3551f59, type: 3} @@ -235627,6 +235827,31 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 3.2600002 objectReference: {fileID: 0} + - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} + - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: e356d5948e4971f499cfe38db3551f59, type: 3} --- !u!224 &4228769374436639584 stripped @@ -235642,16 +235867,6 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1673863619} m_Modifications: - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_Name - value: Hero - objectReference: {fileID: 0} - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - target: {fileID: 2535060995107670383, guid: e356d5948e4971f499cfe38db3551f59, type: 3} propertyPath: m_LocalPosition.x @@ -235757,30 +235972,15 @@ PrefabInstance: propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_Name + value: Hero objectReference: {fileID: 0} - - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 - objectReference: {fileID: 0} - - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_IsActive + value: 0 objectReference: {fileID: 0} - target: {fileID: 2320031818352649172, guid: e356d5948e4971f499cfe38db3551f59, type: 3} @@ -235792,6 +235992,31 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 3.2600002 objectReference: {fileID: 0} + - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} + - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: e356d5948e4971f499cfe38db3551f59, type: 3} --- !u!224 &4082100120160718929 stripped @@ -235952,16 +236177,6 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1517028597} m_Modifications: - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_Name - value: Hero - objectReference: {fileID: 0} - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - target: {fileID: 2535060995107670383, guid: e356d5948e4971f499cfe38db3551f59, type: 3} propertyPath: m_LocalPosition.x @@ -236067,30 +236282,15 @@ PrefabInstance: propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_Name + value: Hero objectReference: {fileID: 0} - - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 - objectReference: {fileID: 0} - - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_IsActive + value: 0 objectReference: {fileID: 0} - target: {fileID: 2320031818352649172, guid: e356d5948e4971f499cfe38db3551f59, type: 3} @@ -236102,6 +236302,31 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 3.2600002 objectReference: {fileID: 0} + - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} + - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: e356d5948e4971f499cfe38db3551f59, type: 3} --- !u!224 &732539848799529134 stripped @@ -236117,16 +236342,6 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 2874419575948170118} m_Modifications: - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_Name - value: Hero - objectReference: {fileID: 0} - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - target: {fileID: 2535060995107670383, guid: e356d5948e4971f499cfe38db3551f59, type: 3} propertyPath: m_LocalPosition.x @@ -236232,30 +236447,15 @@ PrefabInstance: propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_Name + value: Hero objectReference: {fileID: 0} - - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 - objectReference: {fileID: 0} - - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_IsActive + value: 0 objectReference: {fileID: 0} - target: {fileID: 2320031818352649172, guid: e356d5948e4971f499cfe38db3551f59, type: 3} @@ -236267,6 +236467,31 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 3.2600002 objectReference: {fileID: 0} + - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} + - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: e356d5948e4971f499cfe38db3551f59, type: 3} --- !u!224 &1614343476964916978 stripped @@ -236282,16 +236507,6 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 2874419575646265389} m_Modifications: - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_Name - value: Hero - objectReference: {fileID: 0} - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - target: {fileID: 2535060995107670383, guid: e356d5948e4971f499cfe38db3551f59, type: 3} propertyPath: m_LocalPosition.x @@ -236397,30 +236612,15 @@ PrefabInstance: propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_Name + value: Hero objectReference: {fileID: 0} - - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 - objectReference: {fileID: 0} - - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_IsActive + value: 0 objectReference: {fileID: 0} - target: {fileID: 2320031818352649172, guid: e356d5948e4971f499cfe38db3551f59, type: 3} @@ -236432,6 +236632,31 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 3.2600002 objectReference: {fileID: 0} + - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} + - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: e356d5948e4971f499cfe38db3551f59, type: 3} --- !u!224 &6954216252396688781 stripped @@ -236592,16 +236817,6 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1806694851} m_Modifications: - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_Name - value: Hero - objectReference: {fileID: 0} - - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - target: {fileID: 2535060995107670383, guid: e356d5948e4971f499cfe38db3551f59, type: 3} propertyPath: m_LocalPosition.x @@ -236707,30 +236922,15 @@ PrefabInstance: propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} - - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_Name + value: Hero objectReference: {fileID: 0} - - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + - target: {fileID: 2321054590987622477, guid: e356d5948e4971f499cfe38db3551f59, type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -16.999998 - objectReference: {fileID: 0} - - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 - objectReference: {fileID: 0} - - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, - type: 3} - propertyPath: m_AnchoredPosition.y - value: 3.2600002 + propertyPath: m_IsActive + value: 0 objectReference: {fileID: 0} - target: {fileID: 2320031818352649172, guid: e356d5948e4971f499cfe38db3551f59, type: 3} @@ -236742,6 +236942,31 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 3.2600002 objectReference: {fileID: 0} + - target: {fileID: 2320031819195525549, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031820207909310, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819931042899, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} + - target: {fileID: 2320031819916146513, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 3.2600002 + objectReference: {fileID: 0} + - target: {fileID: 2320031819902321005, guid: e356d5948e4971f499cfe38db3551f59, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -16.999998 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: e356d5948e4971f499cfe38db3551f59, type: 3} --- !u!224 &5143580857320041208 stripped diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua index f9beb32329..b0feee2c3b 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua @@ -7917,7 +7917,10 @@ local passivityList = { -- a[float] [338] = function(role, args,id,judge) local f1 = args[1] - local onBeHit = function(caster, damage, bCrit, finalDmg, damageType, skill) + local onBeHit = function(caster, damage, bCrit, finalDmg, damageType, skill,isDirect) + if finalDmg<=0 then + return + end --如果角色死亡就不会反弹伤害 if role:IsDead() then return diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua index 507c41af3a..d88bbadc76 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Blood.lua @@ -6,13 +6,17 @@ function Blood:SetData(...) -- 刷新排序等级 self.bloodValue=... self.sort = 4 + end --初始化后调用一次 function Blood:OnStart() self.target.bloodShield = self - + self.target.Event:DispatchEvent(BattleEventName.BloodValueChange,self.bloodValue/self.target:GetRoleData(RoleDataName.MaxHp)) +end +function Blood:GetCurValue() + return self.bloodValue end --间隔N帧触发,返回true时表示继续触发,返回false立刻触发OnEnd @@ -22,6 +26,7 @@ end --效果结束时调用一次 function Blood:OnEnd() + self.target.Event:DispatchEvent(BattleEventName.BloodValueChange,0) self.target.bloodShield = nil self.bloodValue=0 end @@ -31,9 +36,13 @@ function Blood:CountBloodValue(damage) self.bloodValue=self.bloodValue-damage if self.bloodValue<=0 then self.disperse=true + finalDamage=self.bloodValue end - finalDamage=self.bloodValue - LogError(" 伤害== "..damage.." 盾值=="..self.bloodValue.." 扣血:"..finalDamage) + local value=0 + if self.bloodValue<=0 then + value=0 + end + self.target.Event:DispatchEvent(BattleEventName.BloodValueChange,self.bloodValue/self.target:GetRoleData(RoleDataName.MaxHp)) return finalDamage end diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua index d0af5c536a..66813c671c 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua @@ -1,4 +1,4 @@ -local index = 0 +local index = 0 local function indexAdd() index = index + 1 return index @@ -173,6 +173,7 @@ BattleEventName = { ActionOperateAngerAfter =indexAdd(),--角色行动操作怒气后 HitRoleInBurn = indexAdd(), --击中在燃烧状态得敌人 ActionOperateAngerBefore =indexAdd(),--角色行动操作怒气前 + BloodValueChange = indexAdd(), --御甲只发发生改变 } BattleMaxFrame = 1000000 diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua index 42d70151fd..b0532df573 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua @@ -726,6 +726,7 @@ function BattleUtil.FinalDamage(skill, atkRole, defRole, damage, bCrit, damageTy --血量防护只会防直接伤害 if defRole.bloodShield and skill then realDamage=math.abs(defRole.bloodShield:CountBloodValue(damage)) + damage=realDamage end local finalDmg = defRole.data:SubValue(RoleDataName.Hp,realDamage) if finalDmg >= 0 then diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/EnemyView.lua b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/EnemyView.lua index c6dcb5bd58..3088deab7d 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/EnemyView.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/EnemyView.lua @@ -30,6 +30,7 @@ function EnemyView:onCreate(go, role, position, root, isBoss) self.castingNameNode = Util.GetGameObject(self.castingEfectNode, "TongYong_Casting_Shang/DongHua/MingZi") self.hpSlider = Util.GetGameObject(go, "hpProgress/hp"):GetComponent("Image") self.hpPassSlider = Util.GetGameObject(go, "hpProgress/hpPass"):GetComponent("Image") + self.yujiaSlider=Util.GetGameObject(go, "hpProgress/yujia"):GetComponent("Image") self.nameText = Util.GetGameObject(go, "Name/Text"):GetComponent("Text") self.level = Util.GetGameObject(go, "lv/Text"):GetComponent("Text") self.elementImg = Util.GetGameObject(go, "Pro/Image"):GetComponent("Image") @@ -53,6 +54,7 @@ function EnemyView:onCreate(go, role, position, root, isBoss) self.hpCache = self.role:GetRoleData(RoleDataName.Hp) / self.role:GetRoleData(RoleDataName.MaxHp) self.hpSlider.fillAmount = self.hpCache self.hpPassSlider.fillAmount = self.hpCache + self.yujiaSlider.fillAmount = 0 self.livePath = GetResourcePath(live) self.play_liveScale = RoleConfig[roleId].play_liveScale self.enemy_liveScale = RoleConfig[roleId].enemy_liveScale @@ -146,7 +148,7 @@ function EnemyView:onCreate(go, role, position, root, isBoss) role.Event:AddEvent(BattleEventName.ShowHintText,self.OnShowHintText,self) role.Event:AddEvent(BattleEventName.RoleBeExile,self.OnRoleExile,self) role.Event:AddEvent(BattleEventName.RoleExileEnd,self.OnRoleExileEnd,self) - + role.Event:AddEvent(BattleEventName.BloodValueChange,self.OnBloodValueChange,self) if IsOpenBattleDebug then local URoleProperty = go:GetComponent(typeof(RoleProperty)) if not URoleProperty then @@ -261,6 +263,10 @@ function EnemyView:OnRoleExileEnd(role) local color = Color.New(1, 1, 1, 1) Util.SetColor(self.RoleLiveGOGraphic, color) end + +function EnemyView:OnBloodValueChange(value) + self.yujiaSlider.fillAmount = value +end -- 缩放 function EnemyView:DoScale(scale, dur, func) @@ -520,6 +526,7 @@ function EnemyView:OnDead() self.hpPassTween:Kill() end self.hpSlider.fillAmount = 0 + self.yujiaSlider.fillAmount = 0 self.hpPassSlider.fillAmount = 0 --死亡后不把怒气条显示清空,处理触发不灭怒气不足四点 怒气条清空 2021/09/01 --self.rageSlider.fillAmount = 0 @@ -586,6 +593,7 @@ function EnemyView:onRoleRelive() self.RoleLiveGOGraphic2.freeze = false self.isDead = false + self.yujiaSlider.fillAmount = 0 self.hpSlider.fillAmount=self.role:GetRoleData(RoleDataName.Hp) / self.role:GetRoleData(RoleDataName.MaxHp) local sortingOrder = self.GameObject.transform.parent:GetComponent("Canvas").sortingOrder + 21 local go = BattleManager.LoadAsset(reliveEffect1,sortingOrder) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/PlayerView.lua b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/PlayerView.lua index 44dd5e83ec..37d4585a34 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/PlayerView.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/PlayerView.lua @@ -31,6 +31,7 @@ function PlayerView:onCreate(go, role, position, root) self.castingNameNode = Util.GetGameObject(self.castingEfectNode, "TongYong_Casting_Xia/DongHua/MingZi") self.hpSlider = Util.GetGameObject(go, "hpProgress/hp"):GetComponent("Image") self.hpPassSlider = Util.GetGameObject(go, "hpProgress/hpPass"):GetComponent("Image") + self.yujiaSlider=Util.GetGameObject(go, "hpProgress/yujia"):GetComponent("Image") local nameParent = Util.GetGameObject(go, "Name") self.nameText = Util.GetGameObject(go, "Text"):GetComponent("Text") self.level = Util.GetGameObject(go, "lv/Text"):GetComponent("Text") @@ -41,6 +42,7 @@ function PlayerView:onCreate(go, role, position, root) self.hpCache = self.role:GetRoleData(RoleDataName.Hp) / self.role:GetRoleData(RoleDataName.MaxHp) self.hpSlider.fillAmount = self.hpCache self.hpPassSlider.fillAmount = self.hpCache + self.yujiaSlider.fillAmount = 0 local roleId=role.roleData.roleId local live=HeroConfig[role.roleData.roleId].Live @@ -160,6 +162,7 @@ function PlayerView:onCreate(go, role, position, root) role.Event:AddEvent(BattleEventName.ShowHintText,self.OnShowHintText,self) role.Event:AddEvent(BattleEventName.RoleBeExile,self.OnRoleExile,self) role.Event:AddEvent(BattleEventName.RoleExileEnd,self.OnRoleExileEnd,self) + role.Event:AddEvent(BattleEventName.BloodValueChange,self.OnBloodValueChange,self) if IsOpenBattleDebug then local URoleProperty = go:GetComponent(typeof(RoleProperty)) if not URoleProperty then @@ -179,6 +182,12 @@ function PlayerView:OnSortingOrderChange(battleSorting) self:ChangeCardSorting(battleSorting + self.role.position) end + +function PlayerView:OnBloodValueChange(value) + self.yujiaSlider.fillAmount = value +end + + -- 改变卡牌层级 function PlayerView:ChangeCardSorting(sortingOrder) if not self.oSortingOrder then @@ -563,6 +572,7 @@ function PlayerView:OnDead() end self.hpSlider.fillAmount = 0 self.hpPassSlider.fillAmount = 0 + self.yujiaSlider.fillAmount = 0 --死亡后不把怒气条显示清空,处理触发不灭怒气不足四点 怒气条清空 2021/09/01 --self.rageSlider.fillAmount = 0 self.rageText.text = "" @@ -607,6 +617,7 @@ function PlayerView:onRoleRelive() self.RoleLiveGOGraphic2.freeze = false self.isDead = false + self.yujiaSlider.fillAmount = 0 self.hpSlider.fillAmount=self.role:GetRoleData(RoleDataName.Hp) / self.role:GetRoleData(RoleDataName.MaxHp) local sortingOrder = self.GameObject:GetComponent("Canvas").sortingOrder + 21 local go = BattleManager.LoadAsset(reliveEffect1,sortingOrder) From a20c2267044f4fcd4abcc8d3cc98a9b7922899cf Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Thu, 16 Sep 2021 15:47:17 +0800 Subject: [PATCH 06/10] =?UTF-8?q?[=E6=88=98=E6=96=97]=3D=3D=3D=3D=E5=BE=A1?= =?UTF-8?q?=E7=94=B2=E5=9B=BE=E7=89=87=E8=B5=84=E6=BA=90=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Atlas/BattleAtlas/r_zhandou_yujiatiao.png | Bin 0 -> 398 bytes .../BattleAtlas/r_zhandou_yujiatiao.png.meta | 110 ++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 Assets/ManagedResources/Atlas/BattleAtlas/r_zhandou_yujiatiao.png create mode 100644 Assets/ManagedResources/Atlas/BattleAtlas/r_zhandou_yujiatiao.png.meta diff --git a/Assets/ManagedResources/Atlas/BattleAtlas/r_zhandou_yujiatiao.png b/Assets/ManagedResources/Atlas/BattleAtlas/r_zhandou_yujiatiao.png new file mode 100644 index 0000000000000000000000000000000000000000..0130d462ba9214fc9a90892c798e90a575f27ea5 GIT binary patch literal 398 zcmV;90df9`P)*TU|`T?U|^777zINKykuZtxU{0?)*TiG1_l{nUg;nwodjh8ZV4V_PcSkt z;`9?(hLI6d3@ZmJkEEUvO#_JeA6+X{JtG6U1TOO!u_;4Q2UEa^#K7fCbbXk792$w# zk7@>KW`n?+PtU(>JU&e&qD5^9C?fT2G{WUYcxCwsIRr%xi*2MwBr1P2B8fK}1SACI z`Q40T<(BMg(_;eVNKsxnKEm2Y!C(Z^LMj3b3=DFhh-7ABVrCkRrJ)I!n3x&CamavF zq>X~12q3XHniGc!7>&qb0>BYTL<4CQ3|at*Jy1mc{rB(hztM;qn&98Rzo1I;FDN3P zy#D;?(?}1Hp$eY9yYqp8f#DHoK;Y7m8!L63bP`xbM|SY*8;m16yUs3t1d2oCu~t0> s1_p7$+DE}40`Rfc(MTB%fPsMl0A;X0zn8l{m;e9(07*qoM6N<$g5+(RK>z>% literal 0 HcmV?d00001 diff --git a/Assets/ManagedResources/Atlas/BattleAtlas/r_zhandou_yujiatiao.png.meta b/Assets/ManagedResources/Atlas/BattleAtlas/r_zhandou_yujiatiao.png.meta new file mode 100644 index 0000000000..f21f89a6c9 --- /dev/null +++ b/Assets/ManagedResources/Atlas/BattleAtlas/r_zhandou_yujiatiao.png.meta @@ -0,0 +1,110 @@ +fileFormatVersion: 2 +guid: 46766934c8cf3ca45bdcbcd83f855548 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 65 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 56 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 9b0d66e025849624d80f225903098073 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: BattleAtlas + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: From 01e446fed3a2f9b165a4b4bf6b7612590e5f256f Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Fri, 17 Sep 2021 16:55:49 +0800 Subject: [PATCH 07/10] =?UTF-8?q?[=E6=88=98=E6=96=97]=3D=3D=3D=3D=3D=3D?= =?UTF-8?q?=E5=85=8D=E7=96=ABbuff=E6=B7=BB=E5=8A=A0=E7=B1=BB=E5=9E=8B=205?= =?UTF-8?q?=20=20=20=E5=85=8D=E7=96=AB=E6=8E=A7=E5=88=B6=E4=B8=8D=E5=85=8D?= =?UTF-8?q?=E7=96=AB=E7=A6=81=E7=96=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../~Lua/Modules/Battle/Logic/Buff/Immune.lua | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Immune.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Immune.lua index da5f2e8201..dc3e282da6 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Immune.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/Immune.lua @@ -14,6 +14,13 @@ local immune3 = function(buff) return buff.type == BuffName.Shield and buff.shieldType == ShieldTypeName.AllReduce end +--免疫控制不免疫禁疗 +local immune5 = function(buff) + return buff.type == BuffName.Control and buff.ctrlType and buff.ctrlType~=4 +end + + + --初始化Buff,通过传入一些自定义参数控制成长相关的数值 function Immune:SetData(type,func) self.immuneType = type @@ -38,11 +45,11 @@ function Immune:OnStart() elseif self.immuneType==4 then--自定义免疫 if self.immune4 then self.target.buffFilter:Add(self.immune4) - end - end - if condition then - -- body + end + elseif self.immuneType==5 then--免疫控制 不免疫禁疗 + self.target.buffFilter:Add(immune5) end + end --间隔N帧触发,返回true时表示继续触发,返回false立刻触发OnEnd From d5ce7b7f84c3daaec43e9ba5f336400ae088f02e Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Fri, 17 Sep 2021 17:07:57 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E3=80=90=E6=88=98=E6=96=97=E3=80=91=3D?= =?UTF-8?q?=3D=3D=3D=3D=3D=3D=E8=A2=AB=E5=8A=A837=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../~Lua/Modules/Battle/Logic/Base/Passivity.lua | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua index b0feee2c3b..73b5927bc9 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Passivity.lua @@ -692,14 +692,17 @@ local passivityList = { end) end, - --进入战斗[a]秒后,免疫控制效果,持续[b]秒 - --a[int],b[int] + --进入战斗[a]秒后,免疫控制效果,持续[b]秒,免疫类型[c](c 不填默认为1 免疫控制) + --a[int],b[int],c[int] [37] = function(role, args) local f1 = args[1] local f2 = args[2] - + local type=1 + if args[3] then + type=args[3] + end BattleLogic.WaitForTrigger(f1, function () - role:AddBuff(Buff.Create(role, BuffName.Immune, f2, 1)) + role:AddBuff(Buff.Create(role, BuffName.Immune, f2,type)) end) end, From fbaca4e98924dc654d6ee60618fc88e067c16722 Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Thu, 23 Sep 2021 10:51:21 +0800 Subject: [PATCH 09/10] =?UTF-8?q?[=E6=88=98=E6=96=97]=3D=3D=3D=3D=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=97=B4=E6=8E=A5=E6=B2=BB=E7=96=97=E5=BE=97=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Battle/Logic/Misc/BattleUtil.lua | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua index e2bc8a8812..89c6900b4a 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleUtil.lua @@ -882,6 +882,50 @@ function BattleUtil.CalTreat(castRole, targetRole, value, baseFactor,skill) targetRole.Event:DispatchEvent(BattleEventName.RoleBeHealed, castRole) BattleUtil.ApplyTreat(castRole, targetRole, value, baseFactor,critDamageFactor,addDamageFactor,skill) end +function BattleUtil.FinalTreat(castRole, targetRole, value, baseFactor,skill) + -- 灵兽无效 + if targetRole.type == BattleUnitType.Monster then + return + end + BattleLogic.Event:DispatchEvent(BattleEventName.DisposeRoleCtrl_noheal, castRole,targetRole) + if targetRole.ctrl_noheal or targetRole:IsDead() then --禁疗和死亡无法加血 + --禁疗并且没有死亡的单位显示血量+0 不走后面代码,防止触发后面的被动 by:王振兴 2021/1/27 + if targetRole.ctrl_noheal and not targetRole:IsDead() then + targetRole.Event:DispatchEvent(BattleEventName.RoleBeTreated, castRole, 0, 0) + end + return + end + targetRole.Event:DispatchEvent(BattleEventName.RoleBeHealed, castRole) + local maxHp = targetRole:GetRoleData(RoleDataName.MaxHp) + local hp = targetRole:GetRoleData(RoleDataName.Hp) + baseFactor = baseFactor or 1 + local baseTreat = BattleUtil.FP_Mul(value, baseFactor) + + --baseTreat = BattleUtil.CountChangeList(baseTreat, cl) + -- 取整 + local baseTreat = floor(baseTreat + 0.5) + + local treat = min(baseTreat, maxHp - hp) + if treat > 0 then + targetRole.data:AddValue(RoleDataName.Hp, treat) + end + + castRole.Event:DispatchEvent(BattleEventName.RoleTreat, targetRole, treat, baseTreat) + targetRole.Event:DispatchEvent(BattleEventName.RoleBeTreated, castRole, treat, baseTreat) + --添加发送到battleLogic的治疗消息,用于计算总的战斗伤害值 + BattleLogic.Event:DispatchEvent(BattleEventName.RoleBeTreated, castRole, treat, baseTreat) + -- 战斗记录用 + BattleLogic.Event:DispatchEvent(BattleEventName.RecordTreat, castRole, targetRole, baseTreat) + BattleLogManager.Log( + "Final Treat", + "acamp", castRole.camp, + "apos", castRole.position, + "tcamp", targetRole.camp, + "tpos", targetRole.position, + "value", value + ) +end + function BattleUtil.ApplyTreat(castRole, targetRole, value, baseFactor,critDamageFactor,addDamageFactor,skill) -- 灵兽无效 From 04344165e455e67c6f0fb0cf0e1fa73f910f6767 Mon Sep 17 00:00:00 2001 From: skuld Date: Mon, 11 Oct 2021 18:14:36 +0800 Subject: [PATCH 10/10] bat Resource Commit:2021/10/11,18:14:36 --- .../ArtFont/q_qjsl_qijieshangdian.png | Bin 0 -> 18823 bytes .../ArtFont/q_qjsl_qijieshangdian.png.meta | 110 ++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 Assets/ManagedResources/Atlas/TagAtlas/ArtFont/q_qjsl_qijieshangdian.png create mode 100644 Assets/ManagedResources/Atlas/TagAtlas/ArtFont/q_qjsl_qijieshangdian.png.meta diff --git a/Assets/ManagedResources/Atlas/TagAtlas/ArtFont/q_qjsl_qijieshangdian.png b/Assets/ManagedResources/Atlas/TagAtlas/ArtFont/q_qjsl_qijieshangdian.png new file mode 100644 index 0000000000000000000000000000000000000000..ec49145448a0090938c5d9b159093089bff6f057 GIT binary patch literal 18823 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 O0000