public SPGroup(FormationClass formationClass) : base( new GroupInfo(formationClass.ToString(), GameTexts.FindText("str_troop_group_name", ((int)formationClass).ToString()), formationClass)) { FormationClass = formationClass; OccupationsInGroup = new Dictionary <Occupation, CharactersInOccupation>(); }
private static SPScoreboardUnitVM CreateScoreEntry(SPScoreboardPartyVM party, FormationClass formationClass) { BasicCharacterObject character = new BasicCharacterObject { Name = new TextObject(formationClass.ToString()) }; int kills = party.Members.Where(vm => vm.Character.CurrentFormationClass == formationClass) .Sum(vm => vm.Score.Kill); int deaths = party.Members.Where(vm => vm.Character.CurrentFormationClass == formationClass) .Sum(vm => vm.Score.Dead); int wounded = party.Members.Where(vm => vm.Character.CurrentFormationClass == formationClass) .Sum(vm => vm.Score.Wounded); int routed = party.Members.Where(vm => vm.Character.CurrentFormationClass == formationClass) .Sum(vm => vm.Score.Routed); int readyToUpgrade = party.Members.Where(vm => vm.Character.CurrentFormationClass == formationClass) .Sum(vm => vm.Score.ReadyToUpgrade); int remaining = party.Members.Where(vm => vm.Character.CurrentFormationClass == formationClass) .Sum(vm => vm.Score.Remaining); if (remaining + routed + wounded + deaths == 0) { return(null); } SPScoreboardUnitVM score = new SPScoreboardUnitVM(character) { Score = new SPScoreboardStatsVM(character.Name) { Kill = kills, Dead = deaths, Wounded = wounded, Routed = routed, ReadyToUpgrade = readyToUpgrade, Remaining = remaining + routed + wounded + deaths, } }; return(score); }