123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
- using GameLogic.Combat.CombatTool;
- using GameLogic.Combat.Hero;
- using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
- namespace GameLogic.Combat.Skill
- {
- /// <summary>
- /// 大蛇技能2,吐火焰经过的敌人收到伤害,没0.5秒收到一次伤害
- /// </summary>
- public class S110002 : SkillBasic
- {
- private float _harm;
- private float _currTime;
- private bool _isUpdate;
- // protected BetterList<CombatHeroEntity>
- 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<CombatHeroHitPoint>();
- // 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<CombatHeroHitPoint>();
- 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;
- }
- }
- }
|