Ejemplo n.º 1
0
        public bool ChangeState(Cv_GameState newState)
        {
            if (newState == Cv_GameState.WaitingForPlayers)
            {
                ExpectedPlayers = 1; //NOTE(JM): this must change for splitscreen
                //ExpectedRemotePlayers = Caravel.GameOptions.ExpectedPlayers - ExpectedPlayers;
                //ExpectedAI = Caravel.GameOptions.NumAI;
                HumanPlayersAttached = 0;
                HumanPlayersLoaded   = 0;

                /*if (!string.IsNullOrEmpty(Caravel.GameOptions.GameHost))
                 * {
                 *  IsProxy = true;
                 *  ExpectedAI = 0;
                 *  ExpectedRemotePlayers = 0;
                 *
                 *  if (!Caravel.AttachAsClient())
                 *  {
                 *      return false;
                 *  }
                 * }
                 * else if (ExpectedRemotePlayers > 0)
                 * {
                 *  //Add socket on GameOptions.ListenPort
                 * }*/
            }

            var changedStateEvt = new Cv_Event_ChangeState(State, newState, this);

            State = newState;
            VGameOnChangeState(newState);
            Cv_EventManager.Instance.TriggerEvent(changedStateEvt);

            if (newState == Cv_GameState.WaitingForPlayersToLoadScene)
            {
                HumanPlayersLoaded++; //TODO(JM): In future maybe change this to event handler (to handle remote players too)
            }

            if (newState == Cv_GameState.LoadingScene)
            {
                if (!Caravel.VLoadGame()) //TODO(JM): Maybe change this to automatically load the scene set in the options instead of being overriden by subclass
                {
                    Cv_Debug.Error("Error - Unable to load scene.");
                    Caravel.AbortGame();
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
 public Cv_Event_ChangeState(Cv_GameState prev, Cv_GameState next, object sender, float timeStamp = 0) : base(Cv_EntityID.INVALID_ENTITY, sender, timeStamp)
 {
     PreviousState = prev;
     NewState      = next;
 }
Ejemplo n.º 3
0
 protected virtual void VGameOnChangeState(Cv_GameState newState)
 {
 }