// 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); }
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; }
// 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); }
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(); }
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")); }
// 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; }
// 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; }