Exemple #1
0
        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;
        }
Exemple #4
0
        public virtual GameFrameStory Interact()
        {
            var storyText = StoryImporter.ReadStory(Script);
            var story     = new GameFrameStory(storyText);

            return(story);
        }
Exemple #5
0
        public override GameFrameStory Interact()
        {
            var scriptFile = Flags.AcquireRod ? "fisher_complete.ink" : "fisher.ink";

            _gameFrameStory = ReadStory(scriptFile);
            return(_gameFrameStory);
        }
Exemple #6
0
        public void StartStory(string battleScriptName)
        {
            var storyFile = StoryImporter.ReadStory(battleScriptName);
            var story     = new GameFrameStory(storyFile);

            story.Continue();
            DialogBox.StartStory(story);
            _activeStory = story;
        }
Exemple #7
0
 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);
 }
Exemple #9
0
        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);
                    }
                }
            }
        }
Exemple #12
0
        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;
 }