Example #1
0
        public override CampaignController buildNew()
        {
            string campaignkey = Guid.NewGuid().ToString();
            string storepath = Environment.CurrentDirectory;

            CampaignDatabaseRaptorDb database = new CampaignDatabaseRaptorDb();
            database.CampaignKey = campaignkey;
            database.StorePath = storepath;
            database.init();

            CampaignEngine engine = new CampaignEngine(new Field(5, 5));
            engine.FieldField.Id = 123;

            CampaignController controller = new CampaignController();
            controller.CampaignDataBase = database;
            controller.campaignEngine = engine;
            controller.CampaignKey = campaignkey;
            return controller;
        }
Example #2
0
        public string createNewCampaign(string playerid, string campaignname, clsSektorKoordinaten fielddim, int anzUnitsPerPlayer)
        {
            Player player = getPlayer(playerid);
            if (player == null)
                return "";

            // Datenbank
            ICampaignDatabase database = (ICampaignDatabase)getCampaignDbOrNew("");

            // Spielfeld
            Field field = new Field(fielddim);

            // Engine
            CampaignEngine engine = new CampaignEngine(field);
            engine.CampaignName = campaignname;
            engine.FieldField.Id = 123;
            engine.addPlayer(player);

            CampaignController controller = new CampaignController();
            controller.CampaignDataBase = database;
            controller.campaignEngine = engine;
            controller.CampaignKey = database.CampaignKey;
            controller.saveCurrentGameState();

            m_dictLoadedController[controller.CampaignKey] = controller;
            return database.CampaignKey;
        }
Example #3
0
        public string createNewCampaign(string playerid, string fielddimension)
        {
            Player player = getPlayer(playerid);
            if (player == null)
                return "";

            // Datenbank
            ICampaignDatabase database = (ICampaignDatabase)getCampaignDbOrNew("");

            // Spielfeld
            Field field = new Field(3, 3);

            // Engine
            CampaignEngine engine = new CampaignEngine(field);
            engine.FieldField.Id = 123;
            engine.addPlayer(player);
            engine.addUnit(player, new clsUnit(new Random().Next(1000, 9999).ToString(), 0), field.getSektorList()[0]);

            CampaignController controller = new CampaignController();
            controller.CampaignDataBase = database;
            controller.campaignEngine = engine;
            controller.CampaignKey = database.CampaignKey;
            controller.saveCurrentGameState();

            m_dictLoadedController[controller.CampaignKey] = controller;
            return database.CampaignKey;
        }
        private void initEngine(CampaignEngine engine)
        {
            m_campaignEngine = engine;
            foreach (Sektor sektor in engine.FieldField.getSektorList())
            {
                sektor.onUnitEnteredSektor += onUnitMove;
                sektor.onUnitLeftSektor += onUnitMove;
            }

            // Unit CommandHandler registrieren
            this.onTick = null;
            foreach (Player p in m_campaignEngine.lisPlayers)
            {
                foreach (clsUnit u in p.ListUnits)
                {
                    this.onTick += new delTick(u.CampaignController_onTick);
                }
            }

            // ResourceHandler registrieren
            this.onTick += new delTick(m_campaignEngine.ResourceHandler.CampaignController_onTick);
        }
 public CampaignController(CampaignEngine engine)
 {
     initEngine(engine);
 }
Example #6
0
        public static CampaignEngine restoreFromState(CampaignState state)
        {
            List<Player> lstPlayers = new List<Player>();
            foreach (var pi in state.ListPlayers)
            {
                Player p = new Player(pi);
                lstPlayers.Add(p);
            }

            // Feld erstellen;
            //Type fieldType = Type.GetType(state.getFieldtype());  // Todo: GetType funktioniert nicht obwohl GenericCampaignMasterModel.Field korrekt ist

            // Feld mit Sektoren erzeugen.
            clsSektorKoordinaten objSekKoord = state.FieldDimension;
            Type fieldType = typeof(GenericCampaignMasterModel.Field);
            Field field = (Field)Activator.CreateInstance(fieldType, new object[] { objSekKoord });

            // Engine erstellen
            CampaignEngine engine = new CampaignEngine((Field)field);
            engine.CampaignId = state.CampaignId;
            engine.CampaignName = state.CampaignName;
            engine.setPlayerList(lstPlayers);

            clsUnit.objUnitTypeFountain.dicUnitTypeData = state.getDicUnitTypeInfo();

            // Units platzieren
            foreach (UnitInfo uInfo in state.ListUnitInfo)
            {
                //UnitTypeBase newUnitType = (UnitTypeBase)Activator.CreateInstance(unitType);

                Player aktP = (from p in lstPlayers
                               where p.Id == uInfo.playerId
                               select p).First();

                clsUnit unit = aktP.getUnitByID(uInfo.unitId);

                //clsUnit unit = new clsUnit(uInfo.unitId);
                field.dicSektors[uInfo.sektorId].addUnit(unit);
            }

            // Ressourcehandler erzeugen und Ressourcen wiederherstellen
            ResourceHandler resHandler = new ResourceHandler();
            engine.ResourceHandler = resHandler;
            foreach (ResourceInfo resInfo in state.ListResourceInfo)
            {
                string strResType = resInfo.resourceableType;
                Type resType = Type.GetType(strResType);
                Object typeObj = Activator.CreateInstance(resType);

                Player resourceOwner = (from p in lstPlayers
                                        where p.Id == resInfo.ownerId
                                        select p).First() as Player;

                resHandler.addRessourcableObject(resourceOwner, (IResourceable)typeObj);
            }

            return engine;
        }
Example #7
0
        public static CampaignController createNewCampaign(CampaignInfo info)
        {
            string newCampaignId = Guid.NewGuid().ToString();
            info.campaignId = newCampaignId;

            Field field = new Field(info.FieldDimension);
            CampaignEngine engine = new CampaignEngine(field);
            engine.CampaignName = info.campaignName;
            engine.CampaignId = info.campaignId;
            engine.setPlayerList(info.ListPlayerInfo.Select(p => new Player(p)).AsEnumerable());

            CampaignController controller = new CampaignController(engine);
            return controller;
        }