Example #1
0
    protected override void ThinkAction()
    {
        position++;
        Slime actionSlime = null;

        if (position == 3)
        {
            actionSlime = gameController.GetCurrentPlayer().GetSlimes()[1];
        }
        else
        {
            actionSlime = gameController.GetCurrentPlayer().GetSlimes()[0];
        }


        //Solucio cutre
        if (actions[position].GetAction() == ActionType.ATTACK)
        {
            actions[position] = new SlimeAction(ActionType.ATTACK, MapDrawer.GetTileAt(-1, -1).GetSlimeOnTop());
        }
        if (position >= actions.Count)
        {
            thoughtAction = new AISlimeAction(actionSlime, ActionType.CONQUER, gameController.GetSelectedSlime().actualTile);
        }
        thoughtAction = new AISlimeAction(actionSlime, actions[position]);
    }
Example #2
0
 void Awake()
 {
     _transform  = transform;
     agent       = GetComponent <Slime>().GetAgent();
     gm          = GameManager.Instance;
     tm          = TeamController.Instance;
     photonView  = GetComponent <PhotonView>();
     slimeAction = GetComponent <SlimeAction>();
 }
Example #3
0
    void Start()
    {
        slimeSize          = SlimeSize.small;
        slimeAction        = SlimeAction.find;
        hp                 = 1;
        currency           = 1;
        checkEnemyDistance = 1;
        neighbors          = new List <Slime>();
        moveValue          = Random.Range(0f, 1f);

        StartCoroutine("make_FindCurrentSlime");
    }
Example #4
0
 //Nomes usar per al tutorial
 public bool isTutorialAction(SlimeAction slimeAction, Slime whoActions)
 {
     if (positionTutorial >= tutorialActions.Count)
     {
         return(false);
     }
     if (tutorialActions[positionTutorial].GetAction() == ActionType.ATTACK || tutorialActions[positionTutorial].GetAction() == ActionType.FUSION)
     {
         tutorialActions[positionTutorial].ChangeTileForSlime();
     }
     if (slimeAction.IsEqual(tutorialActions[positionTutorial]) && RightSlime(whoActions))
     {
         positionTutorial++;
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #5
0
    public void DoAction(SlimeAction action)
    {
        if (action == null)
        {
            return;
        }
        switch (action.GetAction())
        {
        case ActionType.ATTACK:
            AttackSlime(action.GetSlime());
            break;

        case ActionType.CONQUER:
            //Debug.Log("CONQUER");
            ConquerTile(action.GetTile());
            break;

        case ActionType.SPLIT:
            //Debug.Log("SPLIT");
            SplitSlime(action.GetTile());
            break;

        case ActionType.EAT:
            GrowSlime(action.GetSlime());
            break;

        case ActionType.MOVE:
            MoveSlime(action.GetTile());
            break;

        case ActionType.FUSION:
            //Debug.Log("FUSION");
            FusionSlime(action.GetSlime());
            break;
        }
        SetSelectedSlime(null);
        uiController.UpdateActions(playerActions, GetCurrentPlayer().actions);
    }
 public AISlimeAction(Slime actionSlime, SlimeAction action) : base(action.GetAction(), action.GetData())
 {
     this.actionSlime = actionSlime;
 }
 public bool IsEqual(SlimeAction other)
 {
     return(this.action == other.GetAction() && this.data == other.GetData());
 }
Example #8
0
    public void IdentifySlimeAction()
    {
        if (currentSlime == this)
        {
            slimeAction = SlimeAction.stay;
            return;
        }

        if (currentSlime.neighbors.Count > neighbors.Count)
        {
            slimeAction = SlimeAction.move;
            return;
        }

        if (currentSlime.neighbors.Count < neighbors.Count)
        {
            slimeAction = SlimeAction.stay;
            return;
        }

        if (currentSlime.neighbors.Count == neighbors.Count)
        {
            if (moveValue > currentSlime.moveValue)
            {
                slimeAction = SlimeAction.stay;
            }
            else
            {
                slimeAction = SlimeAction.move;
            }

            return;
        }

        if (currentSlime.slimeAction == SlimeAction.stay)
        {
            if (currentSlime.neighbors.Count > neighbors.Count)
            {
                slimeAction = SlimeAction.move;
                return;
            }

            if (currentSlime.neighbors.Count < neighbors.Count)
            {
                slimeAction = SlimeAction.stay;
                return;
            }

            if (currentSlime.neighbors.Count == neighbors.Count)
            {
                if (moveValue > currentSlime.moveValue)
                {
                    slimeAction = SlimeAction.stay;
                }
                else
                {
                    slimeAction = SlimeAction.move;
                }

                return;
            }
        }
    }