using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Hero; using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface; namespace GameLogic.Combat.Skill { /// /// 牧师加血 /// public class S20001 : SkillBasic { protected float recoverValue; private int _count; private SkillBasic _skillBasic2004; private SkillBasic _skillBasic2005; protected override void ProInitSkillConfig() { recoverValue = SelfSkillConfig.effectValue[0]; _count = 1; } protected override void ProInitSkill() { _skillBasic2004 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic(20004); _skillBasic2005 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic(20005); if (_skillBasic2005 != null) { _count += (int)_skillBasic2005.SelfSkillConfig.effectValue[0]; } } protected override void ProUseSkill() { ActivationTimeLineData("sk1"); } protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity( TimeLineEventLogicBasic timeLineEventLogicBasic) { ILifetCycleHitPoint[] allLifetCycleHitPoints = CombatController.currActiveCombat.CombatHeroController.GetHeroHitPoint(CombatHeroEntity.IsEnemy); return CombatCalculateTool.Instance.GetMinHpHero(allLifetCycleHitPoints, _count); } protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity, ITimelineFxLogic timelineFxLogic, TriggerData triggerData) { float currRecoverValue = recoverValue; if (_skillBasic2004 != null) { float hpBl = _skillBasic2004.SelfSkillConfig.effectValue[0]; float currBl = (float)(targetEntity.combatHeroEntity.CurrCombatHeroInfo.hp.Value * 100f / targetEntity.combatHeroEntity.MaxCombatHeroInfo.hp.Value); if (currBl <= hpBl) { currRecoverValue += _skillBasic2004.SelfSkillConfig.effectValue[1]; } } long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value, currRecoverValue); HarmReturnInfo harmReturnInfo = Recover(CombatHeroEntity, targetEntity, v, AttType.Normal, HarmType.Default); } } }