Ejemplo n.º 1
0
    //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    //                                                                      \ UPDATE FUNCTION ABOVE /
    //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    void RankAction()
    {
        if (rankState == RankState.FollowingGeneral)
        {
            if (myGeneral.rankState != RankState.IsGeneral)
            {
                rankState   = RankState.LookingForGeneral;
                killMeAfter = 0.5f;
            }
        }
        if (rankState == RankState.LookingForGeneral)
        {
            if (ClosestGeneral())
            {
                AssignToGeneral(ClosestGeneral());
            }
            if (killMeAfter <= 0)
            {
                Die(this);
            }
            else
            {
                killMeAfter -= Time.deltaTime;
            }
        }
        if (rankState == RankState.dead && gameObject.activeInHierarchy)
        {
            gameObject.SetActive(false);
        }
    }
Ejemplo n.º 2
0
 void AssignToGeneral(TroopActor ta)
 {
     rankState = RankState.FollowingGeneral;
     myGeneral = ta;
     if (moveTarget)
     {
         Destroy(moveTarget.gameObject);
     }
     moveTarget = ta.AllocateTarget(this);
 }
Ejemplo n.º 3
0
    void RankAction()
    {
        if (rankState == RankState.FollowingGeneral)
        {
            if (myGeneral.rankState != RankState.IsGeneral)
            {
                rankState   = RankState.LookingForGeneral;
                killMeAfter = 0.5f;
            }
        }
        if (rankState == RankState.LookingForGeneral)
        {
            SetAttackType(AttackType.AUTO);

            TroopActor AssignToMe = RandomGeneral();
            if (AssignToMe)
            {
                AssignToGeneral(AssignToMe);
            }
            else
            {
                PromoteToGeneral(this);
            }
            if (killMeAfter <= 0)
            {
                Die(this);
            }
            else
            {
                killMeAfter -= Time.deltaTime;
            }
        }
        if (rankState == RankState.dead)
        {
            if (moveTarget)
            {
                moveTarget.gameObject.SetActive(false);
            }
            gameObject.SetActive(false);
        }
        else
        {
            gameObject.SetActive(true);
        }
        if (rankState == RankState.IsGeneral)
        {
            if (transform.localScale != originSize * 1.75f)
            {
                transform.localScale = originSize * 1.2f;
            }
        }
    }