示例#1
0
	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();
			}
		}
	}
示例#2
0
	protected override void OnTargetReached ()
	{
		KodoIdleState idleState = new KodoIdleState(this.m_AIBehavior, false);
		this.m_AIBehavior.ChangeState(idleState);
	}
示例#3
0
    public override void SetIdle(bool isResponseInstantly)
    {
        KodoIdleState idleState = new KodoIdleState(this, isResponseInstantly);

        this.ChangeState(idleState);
    }