using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic; using Core.Triiger; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Hero; using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface; namespace GameLogic.Combat.Skill { /// /// (2转,防御型技能):身体周围围绕多丙剑飞行,可以阻挡敌人的功法.抵挡{0}最大生命值的伤害 /// public class S89012 : SkillBasic, IBarrier { private bool isTrgger; public long shel; protected TimeLineEventLogicGroupBasic _timeLineEventLogicGroupBasic; protected override void ProInitSkill() { AddTriggerCallBack("sk1_fashe", Sk1_FaSheProDefaultTimeLineTrigger); } protected override void ProUseSkill() { CombatHeroEntity.CloseLoopFx(); _timeLineEventLogicGroupBasic= ActivationTimeLineData("sk2"); Own = CombatHeroEntity; } protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity, ITimelineFxLogic timelineFxLogic, TriggerData triggerData) { // count = 0; SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("sk2_trigger"); // specialDotInfo BarrierEntityMono barrierEntityMono = specialDotInfo.targetTran.gameObject.GetOrAddComponent(); barrierEntityMono.Barrier = this; isTrgger = true; shel = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.MaxCombatHeroInfo.hp.Value, effectValue[0]); } private void Sk1_FaSheProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity, ITimelineFxLogic timelineFxLogic, TriggerData triggerData) { long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value, effectValue[0]); CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v, AttType.Skill, triggerData, wuXingType, HarmType.Default); } protected override void ProCombatUpdate(float time) { if (!isTrgger) { return; } // currTime += time; // if (currTime > 0.1f) // { // currTime -= time; // ActivationTimeLineData("sk1_fashe"); // count++; // if (count > 20) // { // isTrgger = false; // } // } } public ShowBaiscEntity Own { get; set; } public bool CollideTriiger(ITriggerEntity triggerEntity) { return !isTrgger || shel <= 0; } public void Harm(HarmReturnInfo harmReturnInfo) { shel -= harmReturnInfo.att; if (shel <= 0) { _timeLineEventLogicGroupBasic?.CloseLoopFx(); _timeLineEventLogicGroupBasic = null; } } } }