Beispiel #1
0
 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;
 }
Beispiel #2
0
 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);
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 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;
 }