public IEnumerator TestMinionMovement_Turn_PositionAndRotation() { SceneManager.LoadScene("Test_MinionMovement_Turn"); //MinionPool.Reset(); yield return(null); Node origin = new Node(0, 0); Path path = new Path(origin, NODE_DIRECTION.RIGHT); //1 Branch testBranch = path.Branches[path.OuterBranchIDs[0]]; testBranch.Add(NODE_DIRECTION.RIGHT); //2 testBranch.Add(NODE_DIRECTION.RIGHT); //3 testBranch.Add(NODE_DIRECTION.RIGHT); //4 testBranch.Add(NODE_DIRECTION.UP); //5 testBranch.Add(NODE_DIRECTION.UP); //6 testBranch.Add(NODE_DIRECTION.UP); //7 testBranch.Add(NODE_DIRECTION.UP); //8 Node startNode = testBranch.InNode; Assert.That(startNode.VectorLocation, Is.EqualTo(new Vector2Int(4, 4))); Minion minion = MinionPool.Instance.GetMinion(); minion.Activate(startNode); float travelDuration = minion.MovementInterface.MoveInterval * Node.GetDistanceToOrigin(startNode) + 1f; yield return(new WaitForSeconds(travelDuration)); Assert.That(minion.transform.position.RoundToVector2Int(), Is.EqualTo(origin.VectorLocation)); Assert.That(minion.transform.rotation, Is.EqualTo(Quaternion.Euler(0, MovementController.GetDirectionRotation(NODE_DIRECTION.LEFT), 0))); }
void ChangeState(eAutoBattleState newState) { autoBattleState = newState; if (autoBattleState == eAutoBattleState.IN_BATTLE) { minion1.Activate(minion2); minion2.Activate(minion1); } }
public IEnumerator SpawnWave() { int waveSize = Mathf.RoundToInt(NextWaveSize); for (int i = 0; i < waveSize; i++) { Minion minion = MinionPool.Instance.GetMinion(); minion.Activate(path.Branches[path.OuterBranchIDs[rand.Next(path.OuterBranchIDs.Count)]].InNode); // Don't spawn all minions at the same time. They need to come in waves. Not piles. yield return(new WaitForSeconds(0.5f + UnityEngine.Random.value)); } }
public IEnumerator Test_TowerAttacks_MinionsDieCorrectly() { SceneManager.LoadScene("Test_TowerAttacks_Aggro"); yield return(null); GameObject tower = GameObject.Find("test_tower"); TowerAggro towerAgg = tower.GetComponentInChildren <TowerAggro>(); Node origin = new Node(0, 0); Path path = new Path(origin, NODE_DIRECTION.RIGHT); //1 Branch testBranch = path.Branches[path.OuterBranchIDs[0]]; testBranch.Add(NODE_DIRECTION.RIGHT); //2 testBranch.Add(NODE_DIRECTION.RIGHT); //3 testBranch.Add(NODE_DIRECTION.RIGHT); //4 testBranch.Add(NODE_DIRECTION.RIGHT); //5 testBranch.Add(NODE_DIRECTION.RIGHT); //6 testBranch.Add(NODE_DIRECTION.RIGHT); //7 testBranch.Add(NODE_DIRECTION.RIGHT); //8 testBranch.Add(NODE_DIRECTION.RIGHT); //9 testBranch.Add(NODE_DIRECTION.RIGHT); //10 Node startNode = testBranch.InNode; Minion minion = MinionPool.Instance.GetMinion(); minion.Activate(startNode); float secondMinionSpawnDelay = 2.0f; yield return(new WaitForSeconds(secondMinionSpawnDelay)); Minion minion2 = MinionPool.Instance.GetMinion(); minion2.Activate(startNode); float travelDuration = minion.MovementInterface.MoveInterval * Node.GetDistanceToOrigin(startNode) + 1f - secondMinionSpawnDelay; yield return(new WaitForSeconds(travelDuration)); Assert.That(towerAgg.Targets.Count, Is.EqualTo(0)); Assert.That(!minion.Alive); }