public Hero(HeroSaveState saveState) : this(saveState.index) { color = saveState.color; maskingColor = saveState.color; prisonerName = saveState.name; prisonerID = saveState.id; Prisoner.TAKEN_IDS[prisonerID] = true; History.RegisterReversible(this); FreedPrisoners = saveState.freedPrisoners; CollectedGems = saveState.collectedGems; KilledEnemyCount = saveState.killedEnemyCount; HitByEnemyCount = saveState.hitByEnemyCount; }
public StoreScreen(IList<Type> powerupTypesToUse) { DrawPreviousScreen = false; levelManager = new LevelManager(); for (int i = 0; i < RetroGame.getHeroes().Length; i++) { if (RetroGame.getHeroes()[i].Alive) heroSaveStates[i] = new HeroSaveState(RetroGame.getHeroes()[i]); } levelManager.heroes = RetroGame.getHeroes(); Point startingLevel = LevelManager.STARTING_LEVEL; levelManager.Initialize(RetroGame.NUM_PLAYERS, false, RetroGame.StoreLevelFragment, startingLevel); storeLevel = new StoreLevel(levelManager, RetroGame.StoreLevelFragment, powerupTypesToUse, startingLevel.X, startingLevel.Y); levelManager.putPremadeLevelAt(storeLevel, startingLevel.X, startingLevel.Y); }
public static void InitiateSave(string filename = null) { Device = null; if (filename != null) filenameToSave = filename; else { string heroName = RetroGame.getHeroes()[0].prisonerName; string heroID = RetroGame.getHeroes()[0].prisonerID.ToString("0000"); string dateString = DateTime.Now.ToString("yyyy\\ydd\\dMM\\m-HH\\hmm\\mss\\s"); string suffix = ""; filenameToSave = heroName + "#" + heroID + "-" + dateString + suffix + EXT; } LastSaveFilename = filenameToSave; HeroSaveState[] heroStates = new HeroSaveState[RetroGame.NUM_PLAYERS]; for (int i = 0; i < RetroGame.NUM_PLAYERS; i++) { heroStates[i] = new HeroSaveState(RetroGame.getHeroes()[i]); } string[] storeTypes = new string[StoreLevel.NUM_RANDOM_POWERUPS]; for(int i = 0; i < storeTypes.Length; i++) storeTypes[i] = StoreLevel.alreadyUsedTypes[i].AssemblyQualifiedName; Point farthestHeroLevel = ((StoreScreen)RetroGame.TopLevelManagerScreen).GetFarthestHeroLevel(); dataToSave = new SaveGame() { time = DateTime.Now, numPlayers = RetroGame.NUM_PLAYERS, heroStates = heroStates, levelX = farthestHeroLevel.X, levelY = farthestHeroLevel.Y, cellOffset1 = Level.alphabetOffset1, cellOffset2 = Level.alphabetOffset2, score = RetroGame.Score, AvailableGems = RetroGame.AvailableGems, AvailableSand = RetroGame.AvailableSand, AvailableBombs = RetroGame.AvailableBombs, inventoryState = Inventory.GetState(), storePowerupTypeNames = storeTypes, healthCost = Powerups.DummyPowerups[typeof(HealthPickup)].GemCost, reviveCost = Powerups.DummyPowerups[typeof(RevivePickup)].GemCost, }; StorageDevice.BeginShowSelector(SaveToDevice, null); }