using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Hero; using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface; namespace GameLogic.Combat.Skill { /// /// 大蛇技能2,吐火焰经过的敌人收到伤害,没0.5秒收到一次伤害 /// public class S110002 : SkillBasic { private float _harm; private float _currTime; private bool _isUpdate; // protected BetterList protected override void ProInitSkill() { _harm = SelfSkillConfig.effectValue[0]; } protected override void ProUseSkill() { int odds = CombatCalculateTool.Instance.GetOdd(); string timeName = odds < 50 ? "sk2" : "sk3"; ActivationTimeLineData(timeName); _currTime = 0; // _isUpdate = true; } // protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity( // TimeLineEventLogicBasic timeLineEventLogicBasic) // { // ILifetCycleHitPoint[] lifetCycleHitPoints = new ILifetCycleHitPoint[_enterAlertTarget.Count]; // // for (int i = 0; i < _enterAlertTarget.Count; i++) // { // CombatHeroHitPoint combatHeroHitPoint = _enterAlertTarget[i].GetMainHotPoin(); // lifetCycleHitPoints[i] = combatHeroHitPoint; // } // return lifetCycleHitPoints; // } protected override void ProHeroEnter(TimeLineAlertSeriailztion timeLineAlertSeriailztion, CombatHeroEntity target) { // base.ProHeroEnter(timeLineAlertSeriailztion, target); } protected override void ProSkillPlayFinish() { _isUpdate = false; } protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity, ITimelineFxLogic timelineFxLogic, TriggerData triggerData) { _isUpdate = true; } protected override void ProCombatUpdate(float time) { if (!_isUpdate) { return; } _currTime += time; if (_currTime > 0.1f) { _currTime -= 0.1f; for (int i = 0; i < _enterAlertTarget.Count; i++) { long v = CombatCalculateTool.Instance.GetVlaueRatioForLong( CombatHeroEntity.CurrCombatHeroInfo.attack.Value, _harm); CombatHeroHitPoint combatHeroHitPoint = _enterAlertTarget[i].GetMainHotPoin(); HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, combatHeroHitPoint, v, AttType.Skill, triggerData); } } } public override bool IsCanUse() { int odds = CombatCalculateTool.Instance.GetOdd(); float bl = CombatHeroEntity.CurrCombatHeroInfo.hp.Value * 100.0f / CombatHeroEntity.MaxCombatHeroInfo.hp.Value; if (bl < 50 && odds < 50) { return true; } SkillCd = SkillMaxCd; return false; } } }