123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
- using GameLogic.Combat.Buff;
- using GameLogic.Combat.CombatTool;
- using GameLogic.Combat.Hero;
- using UnityEngine;
- using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
- namespace GameLogic.Combat.Skill
- {
- /// <summary>
- /// 冰星坠地(二阶段技能,一场触发1到2次即可)
- /// 天空中出现多道冰球,只会有{0}枚砸向玩家,其他的冰球主要是为了好看和为了拦截玩家的弹道,照成{1}伤害,并施加一层寒气
- /// </summary>
- public class S9014 : SkillBasic
- {
- private float currTime;
- private int currCount;
- private bool isUpdate;
- private int currInitCount;
- protected override void ProActiveSkill()
- {
- isActive = false;
- }
- protected override void ProUseSkill()
- {
- isUpdate = true;
- currCount = 0;
- currTime = 0;
- currInitCount = 0;
-
-
- // for (int i = 0; i < effectValue[0]; i++)
- // {
- // CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
- // .GetThis<CombatHeroEntity>()
- // .GetMainHotPoin<CombatHeroHitPoint>();
- // BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
- // currTarget.Add(combatHeroHitPoint);
- //
- // }
- }
- protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
- ITimelineFxLogic timelineFxLogic,
- TriggerData triggerData, ISkillFeatures skillFeatures)
- {
- float harmBl = effectValue[1];
- long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
- harmBl);
- HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
- AttType.Skill, triggerData,
- wuXingType, skillFeatures,
- HarmType.Default);
- if (harmReturnInfo.isHitHero)
- {
- BuffInfo buffInfo = BuffInfo.GetBuffInfo(10011, 1);
- targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
- }
- }
- protected override void ProCombatUpdate(float time)
- {
- if (!isUpdate)
- {
- return;
- }
- currTime += time;
- if (currTime > 0.2f)
- {
- currInitCount++;
- currTime = 0;
-
- // Vector3 pos = (combatHeroHitPoint.combatHeroEntity.dotPos - CombatHeroEntity.dotPos);
- Vector3 startPos =Vector3.zero;
- Vector3 endPos=Vector3.zero;
- if (currInitCount % 3 == 0&&CombatHeroEntity.CombatAIBasic.currFocusTarget!=null)
- {
- if (currCount >= effectValue[0])
- {
- isUpdate = false;
- return;
- }
- CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
- .GetThis<CombatHeroEntity>()
- .GetMainHotPoin<CombatHeroHitPoint>();
- currCount++;
- endPos = combatHeroHitPoint.combatHeroEntity.dotPos+new Vector3(0,0.5f,0);
- startPos =
- combatHeroHitPoint.combatHeroEntity.combatHeroGameObject.transform.TransformPoint(10, 10, 0);
- }
- else
- {
- float x = CombatCalculateTool.Instance.GetOdd(-5, 3);
- float z = CombatCalculateTool.Instance.GetOdd(3, 12);
- startPos = CombatHeroEntity.GameObject.transform.TransformPoint(x, 10, z);
- endPos=CombatHeroEntity.GameObject.transform.TransformPoint(x+10, -30, z);
- }
-
-
- // SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos2");
- ActivationTimeLineData("9014",
- customizePos: new Vector3[] { startPos,endPos });
- //生成一个冰星 3个后生成砸中玩家的哪一个
- }
- }
- }
- }
|