public CampaignInfo() { campaignId = String.Empty; campaignName = String.Empty; ListPlayerInfo = new List<PlayerInfo>(); FieldDimension = new clsSektorKoordinaten(); SektorField = new SektorInfo[0, 0]; ListUnits = new List<UnitInfo>(); objCampaignData = new CampaignState(); }
public string saveGameState(CampaignState state) { string strState = state.ToString(); string timeKey = DateTime.Now.ToString("s"); bool ret = m_db.Set(timeKey, strState); m_db.SaveIndex(); if (ret) return timeKey; else throw new Exception("did not save"); }
private CampaignState getTestState() { CampaignState result = new CampaignState(); var fixture = new Fixture(); result.CampaignId = fixture.Create<string>(); result.CampaignName = fixture.Create<string>(); result.ListPlayers = fixture.Create<List<PlayerInfo>>(); result.ListSektorInfo = fixture.Create<List<SektorInfo>>(); result.FieldDimension = fixture.Create<clsSektorKoordinaten>(); result.FieldType = fixture.Create<string>(); result.ListUnitInfo = fixture.Create<List<UnitInfo>>(); result.ListUnitTypes = fixture.Create<List<UnitTypeInfo>>(); result.ListResourceInfo = fixture.Create<List<ResourceInfo>>(); return result; }
public CampaignState getState() { CampaignState state = new CampaignState(); state.CampaignName = this.CampaignName; state.CampaignId = this.CampaignId; state.ListPlayers = this.lisPlayers.Select(p => p.getPlayerInfo()).ToList<PlayerInfo>(); //state.DicSektors = this.FieldField.dicSektors; //state.ListSektorInfo = this.FieldField.dicSektors.Select(s => s.Value.getInfo state.FieldDimension = this.FieldField.FieldDimension; state.FieldType = this.FieldField.GetType().AssemblyQualifiedName; state.ListUnitInfo = this.getUnitInfo(); state.ListUnitTypes = clsUnit.objUnitTypeFountain.UnitTypeList; state.ListResourceInfo = this.ResourceHandler.getResourceInfo(); return state; }
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; }
private CampaignState getEmptyTestState() { CampaignState result = new CampaignState(); return result; }