public static Casualty Report(this Casualty casualty, CasualtyCause cause, Species species, int amount, DateTime timestamp) { casualty.CasualtyCause = cause; casualty.Species = species; casualty.Timestamp = timestamp; casualty.Count = amount; return(casualty); }
public static CasualtyDb ConvertFrom(this AccidentStatisticDb accidentStatistic, Casualty casualty) { var result = new CasualtyDb { AccidentStatistic = accidentStatistic, Age = casualty.Age, AgeBand = casualty.AgeBand, Class = casualty.Class, Mode = casualty.Mode, Severity = casualty.Severity }; return(result); }
// Records the results in persistent battle settings dictionaries public void RecordCasualty(string human_readable_name, bool dead) { Casualty casualty; // Found value in dictionary. Update value if (PersistentBattleSettings.battle_settings.casualties[this.owner.faction_ID].TryGetValue(human_readable_name, out casualty)) { if (dead) casualty.num_killed++; else casualty.num_wounded++; } else { // Did not find value. Add to dictionary casualty = new Casualty(); casualty.name = human_readable_name; if (dead) casualty.num_killed++; else casualty.num_wounded++; PersistentBattleSettings.battle_settings.casualties[this.owner.faction_ID].Add(human_readable_name, casualty); } }
public void EndBattle() { //destroy battle battleChecked = true; paused = false; OverworldParent.SetActive(true); if(persistentBattleSettings.game_over) { GameOver(); } Dictionary<string, Casualty>.KeyCollection keys = persistentBattleSettings.casualties[0].Keys; Dictionary<string, Casualty>.ValueCollection woundedUnits = persistentBattleSettings.casualties[0].Values; Casualty[] woundedTroopNums = new Casualty[woundedUnits.Count]; string[] keyArray = new string[keys.Count]; string curKey; woundedUnits.CopyTo(woundedTroopNums, 0); keys.CopyTo(keyArray, 0); MapCamera.SetActive(true); for (int i = 0; i < woundedTroopNums.Length;i++) { curKey = keyArray[i]; TroopManager.playerTroops.healthy[curKey] = TroopManager.playerTroops.healthy[curKey] - woundedTroopNums[i].num_killed - woundedTroopNums[i].num_wounded; TroopManager.playerTroops.wounded[curKey] = TroopManager.playerTroops.wounded[curKey] + woundedTroopNums[i].num_wounded; } if(!rewardClaimed && persistentBattleSettings.victory) { rewardClaimed = true; resourceController.AddFood(rewardFood); resourceController.AddWater(rewardWater); resourceController.AddTreasure(rewardGold); resourceController.AddTreasure(rewardGold); if (heroReward != null) { TroopManager.playerTroops.AddHero(heroReward); } Dictionary<string, int>.KeyCollection rewardKeys = unitsReward.Keys; keyArray = new string[keys.Count]; rewardKeys.CopyTo(keyArray, 0); for (int i = 0; i < unitsReward.Count; i++) { curKey = keyArray[i]; if(TroopManager.playerTroops.healthy.ContainsKey(curKey)) { TroopManager.playerTroops.healthy[curKey] += unitsReward[curKey]; } else { TroopManager.playerTroops.healthy.Add(curKey, unitsReward[curKey]); } } rewardFood = 0f; rewardWater = 0f; rewardGold = 0; rewardSailors = 0; unitsReward.Clear(); heroReward = null; EndEvent(); } }