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; }
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; }
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); }
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; }
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; }