private bool isFactionDefeated(Faction factionL, Region capital, DefeatManager defeatManager, int regionCount) //ALL DEFEAT CONDITIONS SHOULD BE HERE
        {
            if (factionL.defeated == false)
            {
                if (factionLostCapital(factionL, capital))
                {
                    factionL.defeated = true;
                    return(true);
                }

                // return defeatManager.defeatCondition(factionL, regionCount, factionByNameIndex(factionL.name));
            }
            return(false);
        }
示例#2
0
 public GameInstance(string _roomId)
 {
     armyManager         = new ArmyManager();
     mapManager          = new MapManager();
     factionManager      = new FactionManager();
     factionMaintenances = openMaintenanceList();
     defeatManager       = new DefeatManager(factionManager.getFactions());
     turn   = 0;
     roomId = _roomId;
     concurrentGameQueue   = new ConcurrentQueue <GameRequest>();
     concurrentPlayerQueue = new ConcurrentQueue <string>();
     editable        = false;
     defeatedcount   = 0;
     playerCount     = 0;
     editableCounter = 0;
     canMakeEditable = true;
 }
        //DEFEAT CONDITIONS

        public int checkFactionsDefeat(List <Region> capitals, DefeatManager defeatManager, List <int> regionCount)
        {
            int defeatCounter = 0;
            int ix            = 0;

            foreach (Faction factionL in factions)
            {
                foreach (Region capital in capitals)
                {
                    if (isFactionDefeated(factionL, capital, defeatManager, regionCount[ix]))
                    {
                        defeatCounter++;
                    }
                }
                ix++;
            }
            return(defeatCounter);
        }