示例#1
0
 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);
 }
示例#2
0
        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);
        }
示例#3
0
文件: Unit.cs 项目: DeeCeptor/Odyssey
    // 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);
        }
    }
示例#4
0
    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();
        }
    }