public void TestAttacksAllOtherArmies() { var manager = new ArmyManager(); var attacking = new Player(manager, new Color(0, 0, 0)); attacking.AddArmy(new Army(HEALTH), new Pos(0, 0)); var defending = new Player(manager, new Color(1, 1, 1)); defending.AddArmy(new Army(HEALTH), new Pos(1, 1)); defending.AddArmy(new Army(HEALTH), new Pos(2, 2)); var defending2 = new Player(manager, new Color(2, 2, 2)); defending2.AddArmy(new Army(HEALTH), new Pos(1, 3)); var players = new List <Player>(); players.Add(attacking); players.Add(defending); players.Add(defending2); var combat = new CombatResolver(manager, 0); combat.Engage(attacking, players); Assert.AreEqual(1, attacking.ArmyList.Count); Assert.AreEqual(2, defending.ArmyList.Count); // NOTE: The maximum damage inflicted < defender's health, so it should always survive. Assert.AreEqual(1, defending2.ArmyList.Count); Assert.AreEqual(HEALTH, attacking.ArmyList[0].Health); Assert.IsTrue(defending.ArmyList[0].Health < HEALTH); // Not strictly true, but true for this random seed. Assert.IsTrue(defending.ArmyList[1].Health < HEALTH); Assert.IsTrue(defending2.ArmyList[0].Health < HEALTH); }
public void Die() { // play death noise SoundManager.Get().PlaySoundEffect(SoundManager.SoundEffect.Death); // play death poof animation // If it's a castle, check to see they win if (TroopType == ArmyManager.Troop.Castle) { ArmyManager.Get().CastleDeath(this); } // if this is an enemy else if (!isFriendly) { Player.Get().AddCharisma(1, TroopType); } if (this is Player) { // TODO: Game over SceneManager.LoadScene("Loss", LoadSceneMode.Single); } // Inform the spawner we came from that we perished! if (gSpawner != null) { this.gSpawner.OnEntityDeath(this); } Destroy(this.gameObject); }
public void Start() { currentSpacing = tightSpacing; m_instance = this; cursorSprite = cursor.GetComponent <SpriteRenderer>(); StartTime = (int)Time.time; }
public void TestUndoCycle() // Tests a particularly insidious case of UndoMove wherein one Undo forces another in a cycle. { const int NumArmies = 5; var manager = new ArmyManager(); var player = new Player(manager, new Color(0, 0, 0)); var armies = new List <Army>(); for (int i = 0; i < NumArmies; i++) { var army = new Army(100); armies.Add(army); player.AddArmy(army, new Pos(i, i)); } for (int i = NumArmies - 1; i >= 0; i--) { manager.MoveArmy(armies[i], new Pos(i + 1, i + 1)); } manager.MoveArmy(armies[NumArmies - 1], new Pos(0, 0)); manager.UndoMove(armies[NumArmies - 1]); for (int i = 0; i < NumArmies; i++) { Assert.AreEqual(new Pos(i, i), manager.ArmyPosition(armies[i])); } }
public Player(ArmyManager man, Color c) { ArmyList = new List <Army>(); Color = c; Resources = new ResourceBag(); manager = man; }
// Start is called before the first frame update void Start() { UpdateMode(); PoliticalCoordsMenuBackground = GameObject.Find("PoliticalCoordsMenuBackground"); PoliticalCoordsMenuBackground.SetActive(false); PauseMenu = GameObject.Find("PauseMenu"); PauseMenu.SetActive(false); ConsoleInput = GameObject.Find("Console"); ConsoleInput.SetActive(false); GameModeMenu = GameObject.Find("GameModeMenu"); EconomicMenu = GameObject.Find("Economic Menu"); EconomicMenu.SetActive(false); ConstructionMenu = GameObject.Find("ConstructionMenu"); ConstructionMenu.SetActive(false); ArmyMenu = GameObject.Find("ArmyMenu"); ArmyMenu.SetActive(false); DiplomacyMenu = GameObject.Find("DiplomacyMenu"); DiplomacyMenu.SetActive(false); SeparatismMenu = GameObject.Find("SeparatismMenu"); SeparatismMenu.SetActive(false); EndGameMenu = GameObject.Find("EndGameMenu"); EndGameMenu.SetActive(false); Armymanager = ArmyMenu.GetComponent <ArmyManager>(); diplomacyManager = DiplomacyMenu.GetComponent <DiplomacyManager>(); scene_name = SceneManager.GetActiveScene().name; EconomicModeMinColor = new Color(95, 20, 198); EconomicModeMaxColor = new Color(0, 255, 211); ArmyModeMinColor = new Color(22, 104, 122); ArmyModeMaxColor = new Color(83, 98, 20); ConstructionModeMinColor = new Color(37, 201, 195); ConstructionModeMaxColor = new Color(201, 37, 181); DiplomacyModeWorstColor = new Color(114, 63, 0); DiplomacyModeBestColor = new Color(59, 114, 0); DiplomacyModeEnemyColor = new Color(114, 0, 0); DiplomacyModeAllyColor = new Color(0, 114, 101); DiplomacyModeProtagonistColor = new Color(12, 0, 146); SeparatismModeMinColor = new Color(0, 0, 208); SeparatismModeMaxColor = new Color(208, 0, 0); NatresModeMinColor = new Color(185, 255, 113); NatresModeMaxColor = new Color(255, 173, 113); EduModeMinColor = new Color(251, 243, 146); EduModeMaxColor = new Color(127, 162, 255); ClimateModeMinColor = new Color(50, 200, 250); ClimateModeMaxColor = new Color(50, 250, 63); Consequentor = GameObject.Find("Consequentor").GetComponent <consequentor>(); UpdateStep(); UpdateBalance(); UpdateActions(); foreach (GameObject province in list_of_provinces) { province.GetComponent <Renderer>().material.SetColor("_EmissionColor", province.GetComponent <provincegen>().state.GetComponent <stategen>().state_color); province.GetComponent <Renderer>().material.EnableKeyword("__EMISSION"); } }
public Game() { GameWorld = new World("maps.csv"); Manager = new ArmyManager(); scorer = new Scorer(); combat = new CombatResolver(Manager); Players = new List <Player>(); CurrentPlayerIndex = 0; }
public void Attack() { canAttack = false; lastAttackTime = Time.time; Attack attack = GameObject.Instantiate(this.AttackPrefab, transform).GetComponent <Attack>(); attack.FriendlyAttack = this.isFriendly; attack.direction = this.isFriendly ? ArmyManager.Get().cursorDirection: direction; attack.facing = this.isFriendly ? ArmyManager.Get().cursorDirection : facing; }
public void TestInitialAdd() { var manager = new ArmyManager(); var player = new Player(manager, new Color(0, 0, 0)); player.AddArmy(new Army(100), new Pos(1, 1)); Assert.AreEqual(1, player.ArmyList.Count); Assert.AreEqual(new Pos(1, 1), manager.ArmyPosition(player.ArmyList[0])); Assert.AreEqual(player.ArmyList[0], manager.ArmyAt(new Pos(1, 1))); }
public void AddCharisma(int amount, ArmyManager.Troop type) { gCharisma += amount; if (gCharisma >= Charisma) { // we have enough to recruit! gCharisma -= Charisma; ArmyManager.Get().AddUnit(type); Speak(RecruitMessages[Random.Range(0, RecruitMessages.Length)], 1.5f); } BarCharisma.SetPercent(gCharisma / Charisma); }
public void TestUndoParam(Pos source, Pos dest) { var manager = new ArmyManager(); var player = new Player(manager, new Color(0, 0, 0)); var army = new Army(100); player.AddArmy(army, source); manager.MoveArmy(army, dest); manager.UndoMove(army); Assert.AreSame(army, manager.ArmyAt(source)); Assert.AreEqual(source, manager.ArmyPosition(army)); }
public void TestMovementParam(Pos source, Pos dest) { var manager = new ArmyManager(); var player = new Player(manager, new Color(0, 0, 0)); var army = new Army(100); player.AddArmy(army, source); manager.MoveArmy(army, dest); Assert.IsTrue((manager.ArmyAt(source) != null) == source.Equals(dest)); // source != dest implies that army will no longer be at source. Assert.AreSame(army, manager.ArmyAt(dest)); Assert.AreEqual(dest, manager.ArmyPosition(army)); }
public void TestTrivial() { var manager = new ArmyManager(); var player = new Player(manager, new Color(0, 0, 0)); var players = new List <Player>(); players.Add(player); var combat = new CombatResolver(manager); combat.Engage(player, players); // We mostly care that this test terminated without error and effectively became almost a no-op. For the sake of argument, we'll assert no new armies were created. Assert.AreEqual(0, player.ArmyList.Count); }
public void TestDoesNotAttackOwnArmies() { var manager = new ArmyManager(); var player = new Player(manager, new Color(0, 0, 0)); player.AddArmy(new Army(HEALTH), new Pos(0, 0)); player.AddArmy(new Army(HEALTH), new Pos(1, 1)); var players = new List <Player>(); players.Add(player); players.Add(new Player(manager, new Color(1, 1, 1))); var combat = new CombatResolver(manager, 0); combat.Engage(player, players); Assert.AreEqual(2, player.ArmyList.Count); Assert.AreEqual(HEALTH, player.ArmyList[0].Health); Assert.AreEqual(HEALTH, player.ArmyList[1].Health); }
public void TestArmiesDie() { var manager = new ArmyManager(); var attacking = new Player(manager, new Color(0, 0, 0)); attacking.AddArmy(new Army(HEALTH), new Pos(0, 0)); var defending = new Player(manager, new Color(1, 1, 1)); defending.AddArmy(new Army(0), new Pos(1, 1)); var players = new List <Player>(); players.Add(attacking); players.Add(defending); var combat = new CombatResolver(manager, 0); combat.Engage(attacking, players); Assert.AreEqual(1, attacking.ArmyList.Count); Assert.AreEqual(0, defending.ArmyList.Count); Assert.AreEqual(HEALTH, attacking.ArmyList[0].Health); }
private void Start() { m_armyManager = FindObjectOfType <ArmyManager>(); }
/*/// <summary> * /// 地图点控制类集合 * /// </summary> * public static List<MapPointCtrl> mapPointCtrls;*/ void Awake() { Instance = this; //mapPointCtrls = new List<MapPointCtrl>(); }
void Start() { inst = this; MessageDispatcher.AddListener("SAVE_LoadGame", LoadArmies); MessageDispatcher.AddListener("SAVE_UnloadGame", UnloadArmies); }
public CombatResolver(ArmyManager armies, int seed) { this.armies = armies; generator = new Random(seed); }
public CombatResolver(ArmyManager armies) { this.armies = armies; generator = new Random(); }
private void Start() { ArmyMang = FindObjectOfType <ArmyManager>(); BuyUnitsCanvas.SetActive(false); }