public void RemoveUnit(AIUnitScript aiUnit) { if (aiUnits != null) { aiUnits.Remove(aiUnit); } }
// Use this for initialization void Start() { if (aiUnits == null) { aiUnits = new List <AIUnitScript>(); aiUnitToGameObjectMap = new Dictionary <AIUnitScript, GameObject>(); } currentAICreation = AIEnemyCreation.AIEnemyTheFirst; enemyCount = 0; instance = this; GenerateMap(); UnitScript unit = new UnitScript(); SpawnUnitAt(unit, unitPlumberPrefab, 10, 10); AIUnitScript aiUnit = new AIUnitScript(); AIUnitScript aiUnit2 = new AIUnitScript(); AIUnitScript aiUnit3 = new AIUnitScript(); SpawnAIUnitAt(aiUnit, unitPlumberPrefab, 17, 17); currentAICreation = AIEnemyCreation.AIEnemyTheSecond; SpawnAIUnitAt(aiUnit2, unitPlumberPrefab, 2, 17); currentAICreation = AIEnemyCreation.AIEnemyTheThird; SpawnAIUnitAt(aiUnit3, unitPlumberPrefab, 17, 2); foreach (var item in aiUnits) { Debug.LogError(item); } //Debug.LogError(-Mathf.Infinity); }
public void AddUnit(AIUnitScript aiUnit) { if (aiUnits == null) { aiUnits = new HashSet <AIUnitScript>(); } aiUnits.Add(aiUnit); }
public void GetRangeOfMovement() { Debug.Log("AIUnitScript_UtilityAI"); foreach (var aiUnit in MapGeneratorScript.instance.aiUnits) { //if (aiUnit.enemyNumber == 0) selectedUnit = aiUnit; } }
public void DoSelfDestructionMode(AIUnitScript aiUnit) { foreach (GameObject character in MapGeneratorScript.instance.aiUnitToGameObjectMapList) { if (character.GetComponent <UnitViewScript>().Number == aiUnit.enemyNumber && aiUnit.HitPoints <= 0) { Destroy(character); } } }
// Use this for initialization void Start() { instance = this; GenerateMap(); UnitScript unit = new UnitScript(); SpawnUnitAt(unit, unitPlumberPrefab, 10, 10); AIUnitScript aiUnit = new AIUnitScript(); SpawnAIUnitAt(aiUnit, unitPlumberPrefab, 17, 17); }
public void SpawnAIUnitAt(AIUnitScript aiUnit, GameObject prefab, int q, int r) { if (aiUnits == null) { aiUnits = new HashSet <AIUnitScript>(); aiUnitToGameObjectMap = new Dictionary <AIUnitScript, GameObject>(); } GameObject myHex_go = hexToGameObjectMap[GetHexAt(q, r)]; aiUnit.SetHex(GetHexAt(q, r)); GameObject unitPlumber_go = (GameObject)Instantiate(prefab, new Vector3(myHex_go.transform.position.x, 1, myHex_go.transform.position.z), Quaternion.identity, myHex_go.transform); aiUnit.OnUnitMoved += unitPlumber_go.GetComponent <UnitViewScript>().OnUnitMoved; //aiUnit.name = "AIPlumber"; aiUnits.Add(aiUnit); aiUnitToGameObjectMap.Add(aiUnit, unitPlumber_go); }
public void SpawnAIUnitAt(AIUnitScript aiUnit, GameObject prefab, int q, int r) { #region Attempt at Spawning procedures if (currentAICreation == AIEnemyCreation.AIEnemyTheFirst) { AIUnitScript aiUnitTheFirst = aiUnit; GameObject myHex_go = hexToGameObjectMap[GetHexAt(q, r)]; aiUnitTheFirst.SetHex(GetHexAt(q, r)); GameObject unitPlumberTheFirst_go = (GameObject)Instantiate(prefab, new Vector3(myHex_go.transform.position.x, 1, myHex_go.transform.position.z), Quaternion.identity, myHex_go.transform); aiUnitTheFirst.OnUnitMoved += unitPlumberTheFirst_go.GetComponent <UnitViewScript>().OnUnitMoved; aiUnitTheFirst.ReceivedName += unitPlumberTheFirst_go.GetComponent <UnitViewScript>().ReceiveName; aiUnitTheFirst.ReceivedNumber += unitPlumberTheFirst_go.GetComponent <UnitViewScript>().ReceiveNumber; aiUnitTheFirst.name = "AIAggressivePlumber"; aiUnitTheFirst.SetName(); aiUnitTheFirst.enemyNumber = 1; aiUnitTheFirst.SetNumber(); aiUnits.Insert(enemyCount, aiUnitTheFirst); //aiUnitGameObjects.Add(unitPlumber_go); aiUnitToGameObjectMapList.Add(unitPlumberTheFirst_go); //aiUnitToGameObjectMap.Add(aiUnitTheFirst, unitPlumberTheFirst_go); enemyCount++; currentAICreation = AIEnemyCreation.Stalling; } if (currentAICreation == AIEnemyCreation.AIEnemyTheSecond) { List <AIUnitScript> test2 = aiUnits; AIUnitScript aiUnitTheSecond = aiUnit; GameObject myHex_go = hexToGameObjectMap[GetHexAt(q, r)]; aiUnitTheSecond.SetHex(GetHexAt(q, r)); GameObject unitPlumberTheSecond_go = (GameObject)Instantiate(prefab, new Vector3(myHex_go.transform.position.x, 1, myHex_go.transform.position.z), Quaternion.identity, myHex_go.transform); aiUnitTheSecond.OnUnitMoved += unitPlumberTheSecond_go.GetComponent <UnitViewScript>().OnUnitMoved; aiUnitTheSecond.ReceivedName += unitPlumberTheSecond_go.GetComponent <UnitViewScript>().ReceiveName; aiUnitTheSecond.ReceivedNumber += unitPlumberTheSecond_go.GetComponent <UnitViewScript>().ReceiveNumber; aiUnitTheSecond.name = "AIDocilePlumber"; aiUnitTheSecond.SetName(); List <AIUnitScript> test = aiUnits; aiUnitTheSecond.enemyNumber = 2; aiUnitTheSecond.SetNumber(); aiUnits.Insert(enemyCount, aiUnitTheSecond); //aiUnitGameObjects.Add(unitPlumber_go); aiUnitToGameObjectMapList.Add(unitPlumberTheSecond_go); //aiUnitToGameObjectMap.Add(aiUnitTheSecond, unitPlumberTheSecond_go); enemyCount++; currentAICreation = AIEnemyCreation.Stalling; } if (currentAICreation == AIEnemyCreation.AIEnemyTheThird) { if (currentAICreation == AIEnemyCreation.AIEnemyTheThird) { AIUnitScript aiUnitTheThird = aiUnit; GameObject myHex_go = hexToGameObjectMap[GetHexAt(q, r)]; aiUnitTheThird.SetHex(GetHexAt(q, r)); GameObject unitPlumberTheFirst_go = (GameObject)Instantiate(prefab, new Vector3(myHex_go.transform.position.x, 1, myHex_go.transform.position.z), Quaternion.identity, myHex_go.transform); aiUnitTheThird.OnUnitMoved += unitPlumberTheFirst_go.GetComponent <UnitViewScript>().OnUnitMoved; aiUnitTheThird.ReceivedName += unitPlumberTheFirst_go.GetComponent <UnitViewScript>().ReceiveName; aiUnitTheThird.ReceivedNumber += unitPlumberTheFirst_go.GetComponent <UnitViewScript>().ReceiveNumber; aiUnitTheThird.name = "AIDesperatePlumber"; aiUnitTheThird.SetName(); aiUnitTheThird.enemyNumber = 3; aiUnitTheThird.SetNumber(); aiUnits.Insert(enemyCount, aiUnitTheThird); //aiUnitGameObjects.Add(unitPlumber_go); aiUnitToGameObjectMapList.Add(unitPlumberTheFirst_go); //aiUnitToGameObjectMap.Add(aiUnitTheFirst, unitPlumberTheFirst_go); enemyCount++; currentAICreation = AIEnemyCreation.Stalling; } } if (currentAICreation == AIEnemyCreation.AIEnemyTheFourth) { GameObject myHex_go = hexToGameObjectMap[GetHexAt(q, r)]; aiUnit.SetHex(GetHexAt(q, r)); GameObject unitPlumberTheFourth_go = (GameObject)Instantiate(prefab, new Vector3(myHex_go.transform.position.x, 1, myHex_go.transform.position.z), Quaternion.identity, myHex_go.transform); aiUnit.OnUnitMoved += unitPlumberTheFourth_go.GetComponent <UnitViewScript>().OnUnitMoved; aiUnit.ReceivedName += unitPlumberTheFourth_go.GetComponent <UnitViewScript>().ReceiveName; aiUnit.ReceivedNumber += unitPlumberTheFourth_go.GetComponent <UnitViewScript>().ReceiveNumber; aiUnit.name = "AIDesperatePlumber"; aiUnit.SetName(); aiUnit.enemyNumber = 4; aiUnit.SetNumber(); aiUnits.Add(aiUnit); //aiUnitGameObjects.Add(unitPlumber_go); AIUnitScript aiUnitTheFourth = aiUnit; aiUnitToGameObjectMapList.Add(unitPlumberTheFourth_go); //aiUnitToGameObjectMap.Add(aiUnitTheFourth, unitPlumberTheFourth_go); currentAICreation = AIEnemyCreation.Stalling; } #endregion #region attempt 2 //if (aiUnits == null) //{ // aiUnits = new HashSet<AIUnitScript>(); // aiUnitToGameObjectMap = new Dictionary<AIUnitScript, GameObject>(); //} //GameObject myHex_go = hexToGameObjectMap[GetHexAt(q, r)]; //aiUnit.SetHex(GetHexAt(q, r)); //GameObject unitPlumber_go = (GameObject)Instantiate(prefab, new Vector3(myHex_go.transform.position.x, 1, myHex_go.transform.position.z), Quaternion.identity, myHex_go.transform); //aiUnit.OnUnitMoved += unitPlumber_go.GetComponent<UnitViewScript>().OnUnitMoved; //aiUnit.ReceivedName += unitPlumber_go.GetComponent<UnitViewScript>().ReceiveName; //aiUnit.ReceivedNumber += unitPlumber_go.GetComponent<UnitViewScript>().ReceiveNumber; //aiUnit.name = "AIDesperatePlumber"; //aiUnit.SetName(); //aiUnit.enemyNumber = enemyCount; //aiUnit.SetNumber(); //aiUnits.Add(aiUnit); //aiUnitToGameObjectMapList.Add(unitPlumber_go); #endregion }
private void DoSelectedAIUnitCharacter() { if (currentTurnState == TurnsState.EnemyTurn_1) { foreach (var aiUnit in MapGeneratorScript.instance.aiUnits) { List <GameObject> potentialCharacters = MapGeneratorScript.instance.aiUnitToGameObjectMapList; foreach (GameObject character in potentialCharacters) { if (character.GetComponent <UnitViewScript>().Number == aiUnit.enemyNumber && aiUnit.enemyNumber == 1) { selectedAIUnit = aiUnit; currentState = States.SelectedAIUnitCharacter; Debug.LogError(selectedAIUnit.enemyNumber); } } } if (selectedAIUnit == null) { currentState = States.EndTurn; } } if (currentTurnState == TurnsState.EnemyTurn_2) { foreach (var aiUnit in MapGeneratorScript.instance.aiUnits) { List <GameObject> potentialCharacters = MapGeneratorScript.instance.aiUnitToGameObjectMapList; foreach (GameObject character in potentialCharacters) { if (character.GetComponent <UnitViewScript>().Number == aiUnit.enemyNumber && aiUnit.enemyNumber == 2) { selectedAIUnit = aiUnit; currentState = States.SelectedAIUnitCharacter; Debug.LogError(selectedAIUnit.enemyNumber); } } } if (selectedAIUnit == null) { currentState = States.EndTurn; } } if (currentTurnState == TurnsState.EnemyTurn_3) { foreach (var aiUnit in MapGeneratorScript.instance.aiUnits) { List <GameObject> potentialCharacters = MapGeneratorScript.instance.aiUnitToGameObjectMapList; foreach (GameObject character in potentialCharacters) { if (character.GetComponent <UnitViewScript>().Number == aiUnit.enemyNumber && aiUnit.enemyNumber == 3) { selectedAIUnit = aiUnit; currentState = States.SelectedAIUnitCharacter; Debug.LogError(selectedAIUnit.enemyNumber); } } } if (selectedAIUnit == null) { currentState = States.EndTurn; } } }