public virtual GameFrameStory ReadStory(string storyName) { var storyText = StoryImporter.ReadStory(storyName); var story = new GameFrameStory(storyText); return(story); }
public override GameFrameStory Interact() { var scriptName = Flags.MasterDefeated ? "princess_saved.ink" : "princess_kidnapped.ink"; _gameStory = ReadStory(scriptName); return(_gameStory); }
public override void StartStory(GameFrameStory story) { base.StartStory(story); var player = PlayerEntity.Instance; _cachedPosition = player.Position; }
public virtual GameFrameStory Interact() { var storyText = StoryImporter.ReadStory(Script); var story = new GameFrameStory(storyText); return(story); }
public override GameFrameStory Interact() { var scriptFile = Flags.AcquireRod ? "fisher_complete.ink" : "fisher.ink"; _gameFrameStory = ReadStory(scriptFile); return(_gameFrameStory); }
public void StartStory(string battleScriptName) { var storyFile = StoryImporter.ReadStory(battleScriptName); var story = new GameFrameStory(storyFile); story.Continue(); DialogBox.StartStory(story); _activeStory = story; }
public override GameFrameStory Interact() { if (!Flags.MasterDefeated) { _gameStory = ReadStory("dojo_master_hideout.ink"); CompleteEvent completeEvent = win => { Flags.MasterDefeated = true; }; ReadStory(_gameStory, completeEvent); } else { _gameStory = ReadStory("dojo_master_defeated.ink"); } return(_gameStory); }
public GameFrameStory ReadStory(GameFrameStory story, CompleteEvent completeEvent) { story.BindFunction("battle", (string scriptName) => { var battleMode = new BattleGameMode(this, TopDownRpgScene.ClickEvent) { CompleteEvent = victory => { _gameModeController.PopGameMode(); completeEvent?.Invoke(victory); } }; battleMode.StartStory(scriptName); _gameModeController.PushGameModeDelegate(battleMode); }); return(story); }
public override GameFrameStory Interact() { switch (_state) { case State.Start: _activeStory = ReadStory("villager_start.ink"); break; case State.Monk: _activeStory = ReadStory("villager_monk.ink"); break; case State.Mountain: _activeStory = ReadStory("villager_mountain.ink"); break; } return(_activeStory); }
public override GameFrameStory Interact() { GameStory = ReadStory("princess_pre_kidnapping.ink"); GameStory.ObserveVariable("move_bandit", (varName, newValue) => { var moveTo = PlayerEntity.Instance.Position.ToPoint(); MoveDelegate(_fakeGuard, moveTo); }); GameStory.ObserveVariable("fwacked", (varName, newValue) => { if (!Fwacked) { Fwacked = true; _removeEntity.Invoke(_fakeGuard); _removeEntity.Invoke(this); GameFlags.SetVariable("princess_kidnapped", true); } }); return(GameStory); }
public void Interact(Point interactTarget) { var validInteraction = FourWayPossibleMovement.FourWayAdjacentLocations(PlayerEntity.Instance.Position.ToPoint()).Contains(interactTarget); if (validInteraction) { PlayerEntity.Instance.FacingDirection = interactTarget.ToVector2() - PlayerEntity.Instance.Position; var interactWith = _expiringSpatialHash.ValueAt(interactTarget); if (interactWith != null) { var story = interactWith.Interact(); story.Continue(); var entityDialogBox = DialogBox as EntityStoryBoxDialog; entityDialogBox?.StartStory(story, interactWith); } else if (Flags.AcquireRod) { if (WaterCollision(interactTarget)) { var random = new Random(); var fishComplete = random.Next(3) == 0; var scriptName = fishComplete ? "fish_success.ink" : "fish_fail.ink"; var fishScript = StoryImporter.ReadStory(scriptName); var story = new GameFrameStory(fishScript); if (fishComplete) { Flags.FishCount++; story.ChoosePathString("dialog"); story.SetVariableState("fish_count", Flags.FishCount); } story.Continue(); DialogBox.StartStory(story); } } } }
public override GameFrameStory Interact() { GameStory = ReadStory(ScriptName); GameStory.ChoosePathString("dialog"); CompleteEvent completeEvent = win => { if (win) { var collision = _collision.Invoke(Position.ToPoint(), EndPosition.ToPoint()); var endPoint = collision ? _alternativeEndPoint : EndPosition; MoveDelegate?.Invoke(this, endPoint.ToPoint()); GameFlags.SetVariable(FlagName, true); AlreadyMoved = true; } var dialog = win ? "victory.ink" : "defeat.ink"; var storyScript = StoryImporter.ReadStory(dialog); var newStory = new GameFrameStory(storyScript); newStory.Continue(); _say.Invoke(newStory); }; ReadStory(GameStory, completeEvent); return(GameStory); }
public override GameFrameStory Interact() { GameStory = !StoryOver ? StoryScript : CompleteScript; return(GameStory); }
public void StartStory(GameFrameStory story, Entity interactWith) { StartStory(story); _interactingWith = interactWith; }