示例#1
0
        /*Only the server recieves this event.
         * Similar to NextTurnEvent, but doesn't update the turn.
         * Used for network disconnection.
         * Sends the current spellcasterId.
         */
        public override void OnEvent(NotifyTurnEvent evnt)
        {
            BoltConsole.Write("SERVER: Recieved a Notify turn event");
            int currentSpellcaster = gameStateEntity.GetComponent <NetworkGameState>().getCurrentTurn();
            var nextTurnEvnt       = NextPlayerTurnEvent.Create(Bolt.GlobalTargets.Everyone);

            nextTurnEvnt.NextSpellcaster = currentSpellcaster;
            nextTurnEvnt.Send();
        }
示例#2
0
    //input: the >>permanently<< disconnected spellcaster ID
    public void onRemovePlayer(int sID)
    {
        BoltConsole.Write("Removing spellcasterID " + sID);
        numOfPlayers--;
        state.NumOfPlayers--;
        //combatOrder[sID] = 0;
        spellcasterList[sID] = 0;
        bool currentDisconnected = false;
        int  curSpellcasterID    = state.CurrentSpellcasterTurn;

        if (curSpellcasterID == sID)
        {
            currentDisconnected = true;
            curSpellcasterID    = getNextTurn();
        }

        //Refresh the turn order list
        determineTurnOrder(curSpellcasterID);

        //Update the pointer
        for (int i = 0; i < turnOrder.Count; i++)
        {
            if (turnOrder[i] == curSpellcasterID)
            {
                turn_i = i;
            }
        }
        state.CurrentSpellcasterTurn = turnOrder[turn_i];
        BoltConsole.Write(state.CurrentSpellcasterTurn + "==" + curSpellcasterID);
        if (currentDisconnected)
        {
            BoltConsole.Write("The turn was the spellcaster that logged out");
            var nextTurnEvnt = NotifyTurnEvent.Create(Bolt.GlobalTargets.OnlyServer);
            nextTurnEvnt.Send();
        }
        //If the current turn spellcaster is the one that disconnected, notify the next spellcaster
    }