コード例 #1
0
ファイル: DataManager.cs プロジェクト: allugit/StasisEngine
        // Create new player data
        public static int createPlayerData(string playerName, bool saveData = true)
        {
            Logger.log("DataManager.createPlayerData method starting.");

            int  unusedPlayerSlot = 0;
            bool created          = false;

            while (!created)
            {
                if (File.Exists(_playersDirectory + string.Format("player_data_{0}.xml", unusedPlayerSlot)))
                {
                    unusedPlayerSlot++;
                }
                else
                {
                    WorldMapState startingWorldMapState;

                    _playerName = playerName;
                    _playerSlot = unusedPlayerSlot;

                    // Create managers
                    _worldMapManager = createWorldMapManager();
                    _itemManager     = createItemManager();
                    _dialogueManager = new DialogueManager(_systemManager, _entityManager);
                    _questManager    = new QuestManager();

                    // Create starting world map states
                    startingWorldMapState = new WorldMapState(_worldMapManager.getWorldMapDefinition("oria_world_map"), true);
                    startingWorldMapState.levelIconStates.Add(
                        new LevelIconState(
                            _worldMapManager.getLevelIconDefinition("oria_world_map", "home_village"),
                            true,
                            true));
                    _worldMapManager.worldMapStates.Add(
                        "oria_world_map",
                        startingWorldMapState);

                    // Create inventory and toolbar
                    _entityManager.addComponent("global", PlayerSystem.PLAYER_ID, new InventoryComponent(32));
                    _entityManager.addComponent("global", PlayerSystem.PLAYER_ID, new ToolbarComponent(4, PlayerSystem.PLAYER_ID));

                    if (saveData)
                    {
                        savePlayerData();
                    }
                    created = true;
                }
            }

            Logger.log("DataManager.createPlayerData method finished.");

            return(unusedPlayerSlot);
        }
コード例 #2
0
ファイル: CKFactory.cs プロジェクト: Chedwin/CardKnights
 public IState<CKGameManager> CreateGameState(CKGameManager.GAME_STATE_TYPE cKGameType)
 {
     IState<CKGameManager> gameState = null;
     switch (cKGameType)
     {
         case CKGameManager.GAME_STATE_TYPE.MAIN_MENU:
             gameState = new MainMenuState();
             break;
         case CKGameManager.GAME_STATE_TYPE.WORLD_MAP:
             gameState = new WorldMapState();
             break;
         case CKGameManager.GAME_STATE_TYPE.LOCAL_MAP:
             gameState = new LocalMapState();
             break;
         case CKGameManager.GAME_STATE_TYPE.COMBAT:
             gameState = new CombatState();
             break;
         case CKGameManager.GAME_STATE_TYPE.INGAME_MENU:
             gameState = new InGameMenuState();
             break;
     }
     return gameState;
 }
コード例 #3
0
ファイル: DataManager.cs プロジェクト: allugit/StasisEngine
        // Load world map states
        private static Dictionary <string, WorldMapState> loadWorldMapStates(List <XElement> allWorldMapStateData)
        {
            Dictionary <string, WorldMapState> worldMapStates = new Dictionary <string, WorldMapState>();

            foreach (XElement worldMapStateData in allWorldMapStateData)
            {
                string        worldMapUid   = worldMapStateData.Attribute("world_map_uid").Value;
                WorldMapState worldMapState = new WorldMapState(
                    _worldMapManager.getWorldMapDefinition(worldMapUid),
                    bool.Parse(worldMapStateData.Attribute("discovered").Value));

                foreach (XElement levelIconStateData in worldMapStateData.Elements("LevelIconState"))
                {
                    string levelIconUid = levelIconStateData.Attribute("level_icon_uid").Value;

                    worldMapState.levelIconStates.Add(
                        new LevelIconState(
                            _worldMapManager.getLevelIconDefinition(worldMapUid, levelIconUid),
                            bool.Parse(levelIconStateData.Attribute("discovered").Value),
                            bool.Parse(levelIconStateData.Attribute("finished").Value)));
                }

                foreach (XElement levelPathStateData in worldMapStateData.Elements("LevelPathState"))
                {
                    int id = int.Parse(levelPathStateData.Attribute("id").Value);

                    worldMapState.levelPathState.Add(
                        new LevelPathState(
                            _worldMapManager.getLevelPathDefinition(worldMapUid, id),
                            bool.Parse(levelPathStateData.Attribute("discovered").Value)));
                }

                worldMapStates.Add(worldMapUid, worldMapState);
            }

            return(worldMapStates);
        }
コード例 #4
0
        public override void draw()
        {
            Vector2 viewOffset = -_currentScreenCenter + _halfScreenSize;

            foreach (WorldMapDefinition worldMap in DataManager.worldMapManager.worldMapDefinitions)
            {
                WorldMapState worldMapState = DataManager.worldMapManager.getWorldMapState(worldMap.uid);

                if (worldMapState.discovered)
                {
                    // World map texture
                    _spriteBatch.Draw(worldMap.texture, viewOffset, worldMap.texture.Bounds, Color.White, 0f, new Vector2(worldMap.texture.Width, worldMap.texture.Height) / 2f, _scale, SpriteEffects.None, 1f);

                    // Paths
                    foreach (LevelPathDefinition levelPath in worldMap.levelPathDefinitions)
                    {
                        if (DataManager.worldMapManager.isLevelPathDiscovered(worldMap.uid, levelPath.id))
                        {
                            foreach (LevelPathKey key in levelPath.pathKeys)
                            {
                                float increment = 0.001f;
                                for (float i = 0f; i < 1f; i += increment)
                                {
                                    Vector2 point = Vector2.Zero;
                                    StasisMathHelper.bezier(ref key.p0, ref key.p1, ref key.p2, ref key.p3, i, out point);
                                    _spriteBatch.Draw(_pathTexture, viewOffset + point, _pathTexture.Bounds, Color.Yellow, 0f, _pathTextureOrigin, _scale, SpriteEffects.None, 0.3f);
                                }
                            }
                        }
                    }

                    // Level icons
                    foreach (LevelIconDefinition levelIcon in worldMap.levelIconDefinitions)
                    {
                        LevelIconState state = DataManager.worldMapManager.getLevelIconState(worldMap.uid, levelIcon.uid);

                        if (state != null && state.discovered)
                        {
                            Texture2D texture = state.finished ? levelIcon.finishedTexture : levelIcon.unfinishedTexture;

                            _spriteBatch.Draw(texture, viewOffset + levelIcon.position, texture.Bounds, Color.White, 0f, new Vector2(texture.Width, texture.Height) / 2f, _scale, SpriteEffects.None, 0.2f);
                        }
                    }
                }
            }

            // Draw fog render target
            _spriteBatch.Draw(_fogRT, Vector2.Zero, _fogRT.Bounds, Color.White, 0f, Vector2.Zero, _scale, SpriteEffects.None, 0.1f);

            // Draw level select icon
            _spriteBatch.Draw(_levelSelectIcon, _levelSelectPosition, _levelSelectIcon.Bounds, _levelSelectIconColor, _levelSelectAngle, _levelSelectIconHalfSize, _scale, SpriteEffects.None, 0f);

            // Draw title text
            if (_selectedLevelIcon != null)
            {
                _spriteBatch.DrawString(_levelSelectTitleFont, _selectedLevelIcon.title, new Vector2(32, 32), Color.White);
            }

            // Draw description text
            if (_selectedLevelIcon != null)
            {
                string text = wrapText(_levelSelectDescriptionFont, _selectedLevelIcon.description, 420);
                _spriteBatch.DrawString(_levelSelectDescriptionFont, text, new Vector2(32, 96), Color.LightGray);
            }

            base.draw();
        }
コード例 #5
0
ファイル: Soul.cs プロジェクト: rodstrom/soul
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);

            // Intro sounds
            audioManager.addEffect(audioList.getValue("Intro", "startup"), "intro_startup");

            // Main Menu Sounds
            audioManager.addEffect(audioList.getValue("MainMenu", "move"), "menu_move");
            audioManager.addEffect(audioList.getValue("MainMenu", "select"), "menu_select");
            audioManager.addEffect(audioList.getValue("MainMenu", "start"), "menu_start");
            audioManager.addSong(audioList.getValue("MainMenu", "music"), "menu_music");

            // World Map Sounds
            audioManager.addEffect(audioList.getValue("WorldMap", "select"), "map_select");
            audioManager.addEffect(audioList.getValue("WorldMap", "move"), "map_move");
            audioManager.addEffect(audioList.getValue("WorldMap", "selectMap"), "map_select_map");
            audioManager.addEffect(audioList.getValue("WorldMap", "back"), "map_back");
            audioManager.addSong(audioList.getValue("WorldMap", "music"), "map_music");

            // In Game Sounds
            audioManager.addEffect(audioList.getValue("InGame", "player_shoot"), "player_shoot");
            audioManager.addEffect(audioList.getValue("InGame", "player_die"), "player_die");
            audioManager.addEffect(audioList.getValue("InGame", "player_powerup_pickup"), "player_powerup_pickup");
            audioManager.addEffect(audioList.getValue("InGame", "dark_thought_shoot"), "dark_thought_shoot");
            audioManager.addEffect(audioList.getValue("InGame", "dark_thought_die"), "dark_thought_die");
            audioManager.addEffect(audioList.getValue("InGame", "red_bloodvessel_die"), "red_bloodvessel_die");
            audioManager.addEffect(audioList.getValue("InGame", "blue_bloodvessel_die"), "blue_bloodvessel_die");
            audioManager.addEffect(audioList.getValue("InGame", "purple_bloodvessel_die"), "purple_bloodvessel_die");
            audioManager.addEffect(audioList.getValue("InGame", "nightmare_die"), "nightmare_die");
            audioManager.addEffect(audioList.getValue("InGame", "nightmare_hit"), "nightmare_hit");
            audioManager.addEffect(audioList.getValue("InGame", "inner_demon_die"), "inner_demon_die");
            audioManager.addEffect(audioList.getValue("InGame", "lesser_demon_spawn"), "lesser_demon_spawn");
            audioManager.addEffect(audioList.getValue("InGame", "lesser_demon_die"), "lesser_demon_die");
            audioManager.addEffect(audioList.getValue("InGame", "dark_whisper_die"), "dark_whisper_die");
            audioManager.addEffect(audioList.getValue("InGame", "dark_whisper_release_spikes"), "release_spikes");
            audioManager.addEffect(audioList.getValue("InGame", "pause_appear"), "pause_appear");
            audioManager.addSong(audioList.getValue("InGame", "music"), "main_music");
            audioManager.addSong(audioList.getValue("InGame", "music_secondary"), "secondary_music");

            stateManager = new StateManager();

            controls = new InputManager(this);
            State state = new IntroState(spriteBatch, this, audioManager, controls, "IntroState");
            stateManager.AddState(state);
            state = new MenuState(spriteBatch, this, graphics, displayModes, audioManager, controls, "MenuState");
            stateManager.AddState(state);
            state = new CreditsState(spriteBatch, this, audioManager, controls, "CreditsState");
            stateManager.AddState(state);
            state = new WorldMapState(spriteBatch, this, audioManager, controls, "WorldMapState");
            stateManager.AddState(state);
            state = new PlayState(spriteBatch, this, audioManager, controls, "PlayState");
            stateManager.AddState(state);
            state = new WarningState(spriteBatch, this, audioManager, controls, "WarningState");
            stateManager.AddState(state);
            stateManager.SetState(config.getValue("General", "StartState"));
        }
コード例 #6
0
ファイル: DataManager.cs プロジェクト: klutch/StasisEngine
        // Create new player data
        public static int createPlayerData(string playerName, bool saveData = true)
        {
            Logger.log("DataManager.createPlayerData method starting.");

            int unusedPlayerSlot = 0;
            bool created = false;

            while (!created)
            {
                if (File.Exists(_playersDirectory + string.Format("player_data_{0}.xml", unusedPlayerSlot)))
                    unusedPlayerSlot++;
                else
                {
                    WorldMapState startingWorldMapState;

                    _playerName = playerName;
                    _playerSlot = unusedPlayerSlot;

                    // Create managers
                    _worldMapManager = createWorldMapManager();
                    _itemManager = createItemManager();
                    _dialogueManager = new DialogueManager(_systemManager, _entityManager);
                    _questManager = new QuestManager();

                    // Create starting world map states
                    startingWorldMapState = new WorldMapState(_worldMapManager.getWorldMapDefinition("oria_world_map"), true);
                    startingWorldMapState.levelIconStates.Add(
                        new LevelIconState(
                            _worldMapManager.getLevelIconDefinition("oria_world_map", "home_village"),
                            true,
                            true));
                    _worldMapManager.worldMapStates.Add(
                        "oria_world_map",
                        startingWorldMapState);

                    // Create inventory and toolbar
                    _entityManager.addComponent("global", PlayerSystem.PLAYER_ID, new InventoryComponent(32));
                    _entityManager.addComponent("global", PlayerSystem.PLAYER_ID, new ToolbarComponent(4, PlayerSystem.PLAYER_ID));

                    if (saveData)
                    {
                        savePlayerData();
                    }
                    created = true;
                }
            }

            Logger.log("DataManager.createPlayerData method finished.");

            return unusedPlayerSlot;
        }
コード例 #7
0
ファイル: DataManager.cs プロジェクト: klutch/StasisEngine
        // Load world map states
        private static Dictionary<string, WorldMapState> loadWorldMapStates(List<XElement> allWorldMapStateData)
        {
            Dictionary<string, WorldMapState> worldMapStates = new Dictionary<string, WorldMapState>();

            foreach (XElement worldMapStateData in allWorldMapStateData)
            {
                string worldMapUid = worldMapStateData.Attribute("world_map_uid").Value;
                WorldMapState worldMapState = new WorldMapState(
                        _worldMapManager.getWorldMapDefinition(worldMapUid),
                        bool.Parse(worldMapStateData.Attribute("discovered").Value));

                foreach (XElement levelIconStateData in worldMapStateData.Elements("LevelIconState"))
                {
                    string levelIconUid = levelIconStateData.Attribute("level_icon_uid").Value;

                    worldMapState.levelIconStates.Add(
                        new LevelIconState(
                            _worldMapManager.getLevelIconDefinition(worldMapUid, levelIconUid),
                            bool.Parse(levelIconStateData.Attribute("discovered").Value),
                            bool.Parse(levelIconStateData.Attribute("finished").Value)));
                }

                foreach (XElement levelPathStateData in worldMapStateData.Elements("LevelPathState"))
                {
                    int id = int.Parse(levelPathStateData.Attribute("id").Value);

                    worldMapState.levelPathState.Add(
                        new LevelPathState(
                            _worldMapManager.getLevelPathDefinition(worldMapUid, id),
                            bool.Parse(levelPathStateData.Attribute("discovered").Value)));
                }

                worldMapStates.Add(worldMapUid, worldMapState);
            }

            return worldMapStates;
        }