diff --git a/NetAF.Examples/Assets/Player/Player.cs b/NetAF.Examples/Assets/Player/Player.cs index c565f7c6..3c41525e 100644 --- a/NetAF.Examples/Assets/Player/Player.cs +++ b/NetAF.Examples/Assets/Player/Player.cs @@ -30,7 +30,7 @@ public PlayableCharacter Instantiate() return new(InteractionResult.NoChange, null); if (Knife.Name.EqualsExaminable(i)) - return new(InteractionResult.TargetExpires, i, "You slash wildly at your own throat. You are dead."); + return new(InteractionResult.TargetExpires, i, "You slash wildly at your own throat. Your jugular opens spilling blood everywhere. As you loose consciousness you are filled with a deep sense of regret."); if (CoffeeMug.Name.EqualsIdentifier(i.Identifier)) return new(InteractionResult.NoChange, i, "If there was some coffee in the mug you could drink it."); diff --git a/NetAF/Logic/Game.cs b/NetAF/Logic/Game.cs index ceebbecf..cc7152c2 100644 --- a/NetAF/Logic/Game.cs +++ b/NetAF/Logic/Game.cs @@ -158,15 +158,18 @@ internal void Execute() // check if the game has ended if (CheckForGameEnd(EndConditions, out endMode)) + { + // end the game End(); - } - while (state != GameState.Finishing); - // render the last mode - Mode.Render(this); + // render the last mode + Mode.Render(this); - // wait for acknowledge - GetInput(); + // wait for acknowledge before exiting + GetInput(); + } + } + while (state != GameState.Finishing); // if an end mode specified if (endMode != null) @@ -208,6 +211,8 @@ private void HandleReaction(Reaction reaction) ChangeMode(new ReactionMode(Overworld.CurrentRegion.CurrentRoom.Identifier.Name, regionEnterReaction)); else ChangeMode(new SceneMode()); + + return; } // 3. check if command didn't change the mode and the current mode type is information, essentially the mode has expired