Exemple #1
0
    /*public static PlayerConstants Instance {
     *      get{ return instance; }
     * }*/

    // Use this for initialization
    void Start()
    {
        if (instance == null)
        {
            instance = this;
        }
    }
Exemple #2
0
        public void SendChatToTeam(ServerPlayer from, TeamColors to, string chat, bool action)
        {
            if (chat == string.Empty)
            {
                return;
            }

            ChatMessageEventArgs args = new ChatMessageEventArgs();

            args.From        = from;
            args.To          = null;
            args.ToTeam      = to;
            args.MessageText = chat;

            args.Action   = action;
            args.ChatType = from == null ? ChatMessageEventArgs.ChatMessageTypes.ServerTeamMessage : ChatMessageEventArgs.ChatMessageTypes.TeamMessage;

            if (args.ToTeam == TeamColors.NoTeam)
            {
                return;
            }

            MsgMessage msg = new MsgMessage();

            msg.MessageText = chat;
            msg.From        = from == null ? PlayerConstants.ServerPlayerID : from.PlayerID;
            msg.To          = PlayerConstants.GetTeamPlayerID(to);

            msg.MessageType = action ? MsgMessage.MessageTypes.ActionMessage : MsgMessage.MessageTypes.ChatMessage;

            Players.SendToTeam(msg, to, false);

            MessageSent?.Invoke(this, args);
        }
    void Awake()
    {
        stats = GetComponent <Stats>();

        matchRules = WorldConstants.MatchController.GetComponent <LevelManager>().MatchRules;
        pConsts    = WorldConstants.ConstantsOwner.GetComponent <PlayerConstants>();
        aConsts    = WorldConstants.ConstantsOwner.GetComponent <ActorConstants>();
    }
Exemple #4
0
    void Start()
    {
        PlayProps  = GetComponent <PlayerProperties>();
        ActorProps = GetComponent <ActorProperties>();

        PlayConsts  = WorldConstants.ConstantsOwner.GetComponent <PlayerConstants>();
        ActorConsts = WorldConstants.ConstantsOwner.GetComponent <ActorConstants>();
    }
    //methods related to speed regulation and exhaustion management



    //returns new exhaustion level as a function of ratio of current speed to max speed
    public static float TickExhaust(float currentExhaust, float currentSpeed, float maxSpeed,
                                    PlayerConstants playerConstants)
    {
        float speedRatio = currentSpeed / maxSpeed;
        float randFloat  = Random.Range(0.5f, 1.0f);

        //if player is below half their max speed, regain some energy
        if (speedRatio <= 0.5f)
        {
            return(currentExhaust + (10 * -speedRatio) * randFloat);
        }

        return(currentExhaust + (10 * speedRatio) * randFloat);
    }
Exemple #6
0
        public void HandleChatMessage(ServerPlayer sender, MsgMessage message)
        {
            // check all the ways we can ingore this
            if (message == null)
            {
                return;
            }

            bool isAction = IsMeCommand(message);

            if (!isAction)
            {
                if (AcceptTextCommand != null && AcceptTextCommand(sender, message))
                {
                    return;
                }
            }
            else if (message.MessageText.Length < 5)
            {
                return;
            }

            if (!sender.Allowances.AllowChat)
            {
                return;
            }

            ChatMessageEventArgs inChat = new ChatMessageEventArgs();

            inChat.To       = null;
            inChat.Allow    = true;
            inChat.Filtered = false;
            inChat.From     = sender;
            inChat.Action   = isAction;
            if (isAction)
            {
                inChat.MessageText = message.MessageText.Substring(3);
            }
            else
            {
                inChat.MessageText = message.MessageText;
            }

            if (message.To <= PlayerConstants.MaxUseablePlayerID)
            {
                inChat.To = Players.GetPlayerByID(message.To);
                if (inChat.To == null)
                {
                    return;
                }
                inChat.ToTeam   = inChat.To.ActualTeam;
                inChat.ChatType = ChatMessageEventArgs.ChatMessageTypes.PrivateMessage;
            }
            else if (message.To == PlayerConstants.AllPlayersID)
            {
                inChat.ChatType = ChatMessageEventArgs.ChatMessageTypes.PublicMessage;
            }
            else if (message.To >= PlayerConstants.FirstTeamID && message.To <= PlayerConstants.LastTeamID)
            {
                TeamColors toTeam = PlayerConstants.GetTeamColorFromID(message.To);

                if (toTeam != sender.ActualTeam || Players.GetTeamPlayerCount(toTeam) == 0)
                {
                    return;
                }

                inChat.ToTeam   = toTeam;
                inChat.ChatType = ChatMessageEventArgs.ChatMessageTypes.TeamMessage;
            }
            else
            {
                foreach (var group in GetGroups())
                {
                    if (message.To == group.BroadcastID)
                    {
                        inChat.To       = null;
                        inChat.ToGroup  = group;
                        inChat.ChatType = ChatMessageEventArgs.ChatMessageTypes.GroupMessage;
                    }
                }
            }

            if (inChat.ChatType == ChatMessageEventArgs.ChatMessageTypes.Unknown)
            {
                return;
            }

            MessageReceived?.Invoke(this, inChat);
            if (!inChat.Allow)
            {
                return;
            }

            PushMessageToFilter(inChat);
        }
Exemple #7
0
 void Start()
 {
     player  = Camera.main.GetComponent <PlayerConstants>();
     cashout = GameObject.Find("cashReadout");
 }