コード例 #1
0
        [Firewall(typeof(MustBeTimeState), GameTimeState.HalfTime, Invert = true)] // Must not be half time
        public Task <bool> OnHandle(MessageContext context, CScoreGoalReqMessage message)
        {
            var session = context.GetSession <Session>();
            var plr     = session.Player;
            var room    = plr.Room;

            var td = room.Players.GetValueOrDefault(message.PeerId.AccountId);

            if (td == null)
            {
                return(Task.FromResult(true));
            }

            room.GameRule.OnScoreTouchdown(td);
            return(Task.FromResult(true));
        }
コード例 #2
0
        public void CScoreGoalReq(GameSession session, CScoreGoalReqMessage message)
        {
            var plr  = session.Player;
            var room = plr.Room;

            var target = room.Players.Values.FirstOrDefault(p => p.RoomInfo.PeerId == message.PeerId);

            if (target == null)
            {
                return;
            }

            if (room.Options.MatchKey.GameRule == GameRule.Touchdown)
            {
                ((TouchdownGameRule)room.GameRuleManager.GameRule).OnScoreGoal(target);
            }
        }