public void ReplaceFactionLeaderOnList(int allegiance, FactionLeader newFL) { if (factionLeaders.ContainsKey(allegiance)) { factionLeaders.Remove(allegiance); AddFactionLeaderToList(allegiance, newFL); } }
public void AddFactionLeaderToList(int allegiance, FactionLeader fl) //call this when the Arena scene is loaded. { if (factionLeaders.ContainsKey(allegiance)) { //Debug.Log("faction " + allegiance + " already has a leader!"); } else { //Debug.Log($"added {fl.transform.gameObject} for faction " + allegiance + "."); factionLeaders.Add(allegiance, fl); } }
public FactionLeader GetFactionLeader(int iffAllegiance) { //Debug.Log($"I was asked for the faction leader for {iffAllegiance}"); if (!factionLeaders.ContainsKey(iffAllegiance) || factionLeaders[iffAllegiance] == null) { Debug.Log($"A faction leader doesn't exist for {iffAllegiance}. Returning to Feral"); return(factionLeaders[IFF.feralIFF]); } else { FactionLeader fl = factionLeaders[iffAllegiance]; return(fl); } }
public FactionLeader GetFactionLeader(int iffAllegiance) { //Debug.Log($"I was asked for the faction leader for {iffAllegiance}"); if (iffAllegiance == 0 && !factionLeaders.ContainsKey(0)) { CreateFeralFactionLeader(); factionLeaders.Add(0, feralFactionLeader.GetComponent <FactionLeader>()); return(feralFactionLeader.GetComponent <FactionLeader>()); } if (!factionLeaders.ContainsKey(iffAllegiance) || factionLeaders[iffAllegiance] == null) { Debug.Log($"A faction leader doesn't exist for {iffAllegiance}."); return(null); //return factionLeaders[IFF.feralIFF]; } else { FactionLeader fl = factionLeaders[iffAllegiance]; return(fl); } }
private void initializeGame() { MoveTowardsTarget movement_script_current; MeleeCombatAI melee_combat_script; Unit unit; GameObject[] preset_units_man_at_arms = GameObject.FindGameObjectsWithTag("PlayerUnit_MAA"); GameObject[] preset_units_archer = GameObject.FindGameObjectsWithTag("PlayerUnit_ARCHER"); GameObject unit_faction_leader = GameObject.FindGameObjectWithTag("PlayerUnit_FL"); foreach(GameObject elem in preset_units_man_at_arms) { unit = new ManAtArms(); unit.setGameObject(elem); ObjectBank.instance().addPlayerUnit(ref unit); unit.setCombatFocus(Unit.OFFENSIVE_FOCUS); movement_script_current = elem.GetComponent<MoveTowardsTarget>(); movement_script_current.setUnitAgility(unit.getAgility()); } foreach (GameObject elem in preset_units_archer) { unit = new Archer(); unit.setGameObject(elem); ObjectBank.instance().addPlayerUnit(ref unit); unit.setCombatFocus(Unit.OFFENSIVE_FOCUS); movement_script_current = elem.GetComponent<MoveTowardsTarget>(); movement_script_current.setUnitAgility(unit.getAgility()); } if (unit_faction_leader != null) { unit = new FactionLeader(); unit.setGameObject(unit_faction_leader); ObjectBank.instance().addPlayerUnit(ref unit); unit.setCombatFocus(Unit.OFFENSIVE_FOCUS); movement_script_current = unit_faction_leader.GetComponent<MoveTowardsTarget>(); movement_script_current.setUnitAgility(unit.getAgility()); } //Enemy units. preset_units_man_at_arms = GameObject.FindGameObjectsWithTag("EnemyUnit_MAA"); preset_units_archer = GameObject.FindGameObjectsWithTag("EnemyUnit_ARCHER"); foreach (GameObject elem in preset_units_man_at_arms) { unit = new ManAtArms(); unit.setGameObject(elem); ObjectBank.instance().addEnemyUnit(ref unit); unit.setCombatFocus(Unit.DEFENSIVE_FOCUS); melee_combat_script = elem.GetComponent<MeleeCombatAI>(); melee_combat_script.initialize(Unit.MAX_HIT_POINTS, unit.getDefaultMorale(), unit.getArmor().getDamageReductionFactor()); movement_script_current = elem.GetComponent<MoveTowardsTarget>(); movement_script_current.setUnitAgility(unit.getAgility()); } foreach (GameObject elem in preset_units_archer) { unit = new Archer(); unit.setGameObject(elem); ObjectBank.instance().addEnemyUnit(ref unit); unit.setCombatFocus(Unit.DEFENSIVE_FOCUS); movement_script_current = elem.GetComponent<MoveTowardsTarget>(); movement_script_current.setUnitAgility(unit.getAgility()); } Debug.Log("Number player units: " + ObjectBank.instance().getUnitList().Length ); Debug.Log("Number enemy units: " + ObjectBank.instance().getEnemyUnitList().Length ); }