void RemoveState()
        {
            AbstractGameState state = states.Peek();

            StateChanged -= StateChanged;

            Game.Components.Remove(state);

            states.Pop();
        }
Beispiel #2
0
        /// This method is triggered by a keyboard shortcut in the main scene
        public void SailToNextAssigment()
        {
            AbstractGameState state = context.StateMachine.State;

            if (state is GameStateAssignment)
            {
                context.SetAssignmentCompleted();
            }
            context.SetSailToAssignmentState(context.AssignmentIndex + 1, 1.5f);
        }
Beispiel #3
0
 public override void Deactivate(AbstractGameState nextState)
 {
     foreach (var flock in birdFlocks)
     {
         flock.OnAdded.RemoveListener(OnBirdAdded);
         flock.OnDeleted.RemoveListener(OnBirdDeleted);
     }
     SetAllBirdsGazeButtons(false);
     turtleTimeline.stopped -= SkipBack;
     base.Deactivate(nextState);
 }
        override public void Deactivate(AbstractGameState nextState)
        {
            foreach (GazeButton b in buttons)
            {
                b.OnSelected.RemoveAllListeners();
            }
            EnableAllGazeButtons(false);
            poemTimeline.paused -= OnPoemFinished;

            base.Deactivate(nextState);
        }
        override public void Deactivate(AbstractGameState nextState)
        {
            context.Boat.StartSteering.RemoveListener(context.Boat.StartSailing);
            context.Boat.StopSteering.RemoveListener(context.Boat.StopSailing);

            distanceWarning.Warn.RemoveListener(OnDistanceWarning);
            distanceWarning.ClearWarning.RemoveListener(OnClearWarning);

            targetLocation.Hit.RemoveListener(OnTargetHit);

            base.Deactivate(nextState);
        }
Beispiel #6
0
        override public void Activate(AbstractGameState previousState)
        {
            base.Activate(previousState);
            context.Boat.StopSailing();
            context.Boat.SetDrift(0);
            context.StopGameTimer();
            context.DayNightTimeline.Resume(); // set the sun

            partyAnimation.MuteTracks(context.CompletedAssignments);

            StartTimeOut();
        }
Beispiel #7
0
 public override void Activate(AbstractGameState previousState)
 {
     base.Activate(previousState);
     context.DayNightTimeline.Resume(); // sun
     turtleTimeline.stopped += SkipBack;
     foreach (var flock in birdFlocks)
     {
         flock.OnAdded.AddListener(OnBirdAdded);
         flock.OnDeleted.AddListener(OnBirdDeleted);
     }
     SetAllBirdsGazeButtons(true);
     context.Boat.SetDrift(.125f);
 }
        override public void Activate(AbstractGameState previousState)
        {
            base.Activate(previousState);
            context.Boat.StopSailing();

            foreach (GazeButton b in buttons)
            {
                AddListenerToButton(b);
            }
            EnableAllGazeButtons(false);

            poemTimeline.paused += OnPoemFinished;
        }
        override public void Activate(AbstractGameState previousState)
        {
            base.Activate(previousState);

            context.Boat.StartSteering.AddListener(context.Boat.StartSailing);
            context.Boat.StopSteering.AddListener(context.Boat.StopSailing);

            targetLocation.Hit.AddListener(OnTargetHit);

            distanceWarning.Warn.AddListener(OnDistanceWarning);
            distanceWarning.ClearWarning.AddListener(OnClearWarning);

            context.Boat.StartSailingWhenPaddleEnabled();
        }
    public override AbstractGameMove GetMove(AbstractGameState gameState)
    {
        var moveList = Game.GenerateMoves(gameState);

        foreach (var move in moveList)
        {
            var newState = Game.DoMoveOnState(gameState, move);
            if (Memory[Game.SerializeState(newState)] == GameValue.Win)
            {
                return(move);
            }
        }
        return(moveList[0]);
    }
        public void ChangeState(AbstractGameState state, PlayerIndex?index)
        {
            while (states.Count > 0)
            {
                RemoveState();
            }

            drawOrder       = startDrawOrder;
            state.DrawOrder = drawOrder;

            drawOrder += drawOrderIncrement;

            AddState(state, index);
            OnStateChanged();
        }
        override public void Activate(AbstractGameState previousState)
        {
            base.Activate(previousState);
            const float fadeDuration = 1f;

            SteamVR_Fade.Start(Color.black, 0);

            DOVirtual.DelayedCall(1 + fadeDuration,
                                  () =>
            {
                SteamVR_Fade.Start(Color.clear, fadeDuration);

                if (Application.isEditor && skipToAssignment != Assignments.NO_CHEAT)
                {
                    context.SetSailToAssignmentState((int)skipToAssignment, 1f);
                }
                else
                {
                    context.StateMachine.SetState(new GameStateNavigatorIntro(context));
                }
            });
        }
Beispiel #13
0
 public abstract IList <AbstractGameMove> GenerateMoves(AbstractGameState state);
Beispiel #14
0
 public abstract AbstractGameState DoMoveOnState(AbstractGameState state, AbstractGameMove move);
 public abstract AbstractGameMove GetMove(AbstractGameState gameState);
Beispiel #16
0
 public bool InitGameState(AbstractGameState state)
 {
     State = state;
     return(true);
 }
 public abstract GameValue GetStatusValue(AbstractGameState gameState);
 public override GameValue GetStatusValue(AbstractGameState gameState)
 {
     return(Memory[Game.SerializeState(gameState)]);
 }
 public bool ContainsState(AbstractGameState state) => states.Contains(state);
Beispiel #20
0
 public abstract GameValue PrimitiveValue(AbstractGameState state);
 override public void Deactivate(AbstractGameState nextState)
 {
     navigatorIntroTimeline.stopped -= Next;
     base.Deactivate(nextState);
 }
 override public void Activate(AbstractGameState previousState)
 {
     base.Activate(previousState);
     navigatorIntroTimeline.stopped += Next;
 }
Beispiel #23
0
 override public void Deactivate(AbstractGameState nextState)
 {
     StopTimeOut();
     base.Deactivate(nextState);
 }
Beispiel #24
0
 public string SerializeState(AbstractGameState state)
 {
     return(JsonConvert.SerializeObject(state));
 }
 public override void Deactivate(AbstractGameState nextState)
 {
     turtleTimeline.stopped -= SkipBack;
     base.Deactivate(nextState);
 }