public override void AICalculate () { if(this.m_Target == null) { KodoIdleState idleState = new KodoIdleState(this.m_AIBehavior, false); this.m_AIBehavior.ChangeState(idleState); } else { float distanceSqr = Vector2.SqrMagnitude((Vector2)PositionConvertor.GetWorldPositionFromActorTileIndex (this.m_TargetPosition) - (Vector2)this.m_AIBehavior.transform.position); if(distanceSqr <= this.CharacterAI.AttackBehavior.AttackScopeSqr) { this.m_HPBehavior.Bomb(); BuildingHPBehavior targetHP = this.m_Target.transform.GetComponent<BuildingHPBehavior>(); targetHP.DecreaseHP(this.CharacterAI.AttackBehavior.AttackValue, this.CharacterAI.AttackBehavior.AttackCategory); } else { base.AICalculate(); } } }
protected override void OnTargetReached () { KodoIdleState idleState = new KodoIdleState(this.m_AIBehavior, false); this.m_AIBehavior.ChangeState(idleState); }
public override void SetIdle(bool isResponseInstantly) { KodoIdleState idleState = new KodoIdleState(this, isResponseInstantly); this.ChangeState(idleState); }