using Fort23.Core; using Fort23.UTool; using GameLogic.Combat.Hero; using GameLogic.Combat.Hero.State; namespace GameLogic.Combat.CombatTool { public class MagicWeaponCollisionInfo : CObject { public CombatMagicWeaponEntity a; public CombatMagicWeaponEntity b; public int id; protected float _currTime; /// /// 状态 0=等待状态 1=飞行状态 2=碰撞状态 /// public int State; public void Init(CombatMagicWeaponEntity a, CombatMagicWeaponEntity b,int id) { this.id = id; this.a = a; this.b = b; a.MagicWeaponCollisionId = id; b.MagicWeaponCollisionId = id; State = 0; } public void Update(float t) { if (State == 0) { if (a.CombatAIBasic.stateControl.CurrStateName.Equals(CombatHeroStateType.idle) && b.CombatAIBasic.stateControl.CurrStateName.Equals(CombatHeroStateType.idle)) { State = 1; } } if (State == 2) { _currTime += t; if (_currTime > 0.1f) { _currTime = 0; if (a != null) { a.ReduceHp(1); } if (b != null) { b.ReduceHp(1); } } } } public void SetState(int state) { State = state; } public override void ActiveObj() { } public override void DormancyObj() { a = null; b = null; } public void Finish() { LogTool.Log("碰撞完成"); if (a.HpBl > 0) { a.CombatAIBasic.ChangeState(CombatHeroStateType.att); a.MagicWeaponCollisionId = -1; b.MagicWeaponCollisionId = -1; } if (b.HpBl > 0) { b.CombatAIBasic.ChangeState(CombatHeroStateType.att); a.MagicWeaponCollisionId = -1; b.MagicWeaponCollisionId = -1; } } } }