public void StartBattle(ICharacter character, ICreature enemy) { _character = character; _creature = enemy; WriteOutput(_character.StartBattle()); WriteOutput(_creature.StartBattle()); }
private void SpawnDummy() { UpdateGameState(GameState.Combat); ICharacter character = _httpContextAccessor.HttpContext.Session.GetObject <GameSession>("GameSession").Character; _combatState.StartBattle(character, new TrainingDummy()); }
private void CreateNewCharacter() { List <ICharacterClass> _allCharacterClasses = _characterClassDataAccess.GetAllCharacterClasses(); // Check for valid input here if (InputIsValidCharacterClass(_allCharacterClasses)) { // newCharacter.SetCharacterClass(characterClassDataAccess.GetCharacterClass(_input)); int characterId = _characterDataAccess.CreateCharacter(_input); ICharacter character = _characterDataAccess.GetCharacterById(characterId); GameSession gameSession = _httpContextAccessor.HttpContext.Session.GetObject <GameSession>("GameSession"); gameSession.Character = character as Character; _httpContextAccessor.HttpContext.Session.SetObject("GameSession", gameSession); _outputHandler.HandleOutput("You chose: " + character.CharacterClass.ClassName); UpdateGameState(GameState.Exploration); } else { _outputHandler.HandleOutput("That's not a valid class."); } }
// TO BE DELETED WHEN STORED IN SESSION. public void Reinstantiate(ICharacter character, ICreature enemy) { _character = character; _creature = enemy; }
public void HandleInput(string input) { _input = input; if (string.IsNullOrWhiteSpace(_input)) { return; } _outputHandler.HandleOutput(_input); // CHECKS BELOW THIS COMMENT GameState currentState = _httpContextAccessor.HttpContext.Session.GetObject <GameSession>("GameSession").CurrentGameState; if (currentState == GameState.CharCreation) { // pirvate void HandleCharacterCreationInput if (CheckInputCaseInsensitive(_characterClassDataAccess.GetAllCharacterClasses().Select(c => c.ClassName).ToList())) { CreateNewCharacter(); } else { _outputHandler.HandleOutput("Please insert a valid class!"); } } else if (currentState == GameState.Exploration) { if (CheckInputCaseInsensitive("All Abilities")) { DisplayAllAbilities(); } else if (CheckInputCaseInsensitive("My Abilities")) { DisplayAllCharacter_Abilities(); } else if (CheckInputCaseInsensitive("Sit")) { // Stuff like this goes into states where you can freely act. _outputHandler.HandleOutput("You sit down."); } else if (CheckInputCaseInsensitive("Training Dummy")) { // Stuff like this goes in other states from where combat can start. SpawnDummy(); } } // combat state stuff else if (currentState == GameState.Combat) { ReInstantiateCombat(); if (CheckInputCaseInsensitive(_abilityDataAccess.GetAllCharacter_Abilities(_httpContextAccessor.HttpContext.Session.GetObject <GameSession>("GameSession").Character.CharacterId).Select(a => a.AbilityName).ToList())) { IAbility ability = _abilityDataAccess.GetAbilityByName(_input); ICharacter character = _httpContextAccessor.HttpContext.Session.GetObject <GameSession>("GameSession").Character; string attackOutput = character.Attack(ability); _outputHandler.HandleOutput(attackOutput); } else if (CheckInputCaseInsensitive("Forfeit") || CheckInputCaseInsensitive("Run")) { _combatState.EndBattleDefeat(); UpdateGameState(GameState.Exploration); } } if (_outputHandler.GetOutput() == "" || _outputHandler.GetOutput() == null) { _outputHandler.HandleOutput("Nothing happened."); } }
private void ReInstantiateCombat() { ICharacter character = _httpContextAccessor.HttpContext.Session.GetObject <GameSession>("GameSession").Character; _combatState.Reinstantiate(character, new TrainingDummy()); }