public Barrack CreateBarrack(int codBarrack, bool isEnemy, PhaseObjectives barrackObjective) { GameObject barrackGameObject = GameObject.Instantiate(barrackPrefab); Barrack barrack = new Barrack(); BarrackScriptableObject barrackData = GetBarrackScriptableObject(codBarrack); barrack.CodBarrack = barrackData.codBarrack; barrack.CodPart = barrackData.codPart; barrack.CodTroop = barrackData.codTroop; barrack.NamBarrack = barrackData.namBarrack; barrack.DesBarrack = barrackData.desBarrack; barrack.NumTroopLimit = barrackData.numTroopLimit; barrack.ValCost = barrackData.valCost; barrack.ValSpawnFrequency = barrackData.valSpawnFrequency; barrack.GameObject = barrackGameObject; barrack.IsEnemy = isEnemy; barrack.Objective = barrackObjective; barrack.SetUpSpawner(); barrack.GameObject.GetComponent <SpriteRenderer>().sprite = barrackData.sprite; barrack.GameObject.GetComponent <Animator>().runtimeAnimatorController = barrackData.animatorController; barrack.GameObject.GetComponent <RunTimeBarrackData>().SetData(barrack); return(barrack); }
private void BuildBarrack(BarrackScriptableObject barrackToBuild) { // TO:DO --> Use RuntimeData to create the barrack Barrack barrack = barrackFactory.CreateBarrack(barrackToBuild.codBarrack, true, bobAIObjective); Vector2 buildPosition = PickBuildPosition(); barrack.GameObject.transform.position = buildPosition; bobAIGoldReserve.SpendGold(barrack.ValCost); buildingPositions.Remove(buildPosition); }
private void HandleWaveStartEvent() { // TO:DO --> Use the money and barracks on RuntimeData int lowestBarrackValue = barracksPriorityList.GetLast().Priority; while (bobAIGoldReserve.currentGold >= lowestBarrackValue) { BarrackScriptableObject barrackToBuild = barracksPriorityList.GetLast().Key; for (int i = barracksPriorityList.Count - 1; i >= 0; i--) { BarrackScriptableObject compareBarrack = barracksPriorityList.Find(i).Key; if (barrackToBuild.valCost <= compareBarrack.valCost) { if (compareBarrack.valCost <= bobAIGoldReserve.currentGold) { barrackToBuild = compareBarrack; } else { break; } } } if (buildingPositions.Count > 0) { BuildBarrack(barrackToBuild); } else { return; } } }