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]); }
void Awake() { _transform = transform; agent = GetComponent <Slime>().GetAgent(); gm = GameManager.Instance; tm = TeamController.Instance; photonView = GetComponent <PhotonView>(); slimeAction = GetComponent <SlimeAction>(); }
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"); }
//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); } }
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()); }
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; } } }