public void CScoreSuicideReq(GameSession session, CScoreSuicideReqMessage message) { var plr = session.Player; plr.RoomInfo.PeerId = message.Id; var room = plr.Room; room.GameRuleManager.GameRule.OnScoreSuicide(plr); }
[Firewall(typeof(MustBeTimeState), GameTimeState.HalfTime, Invert = true)] // Must not be half time public Task <bool> OnHandle(MessageContext context, CScoreSuicideReqMessage message) { var session = context.GetSession <Session>(); var plr = session.Player; var room = plr.Room; if (plr.State != PlayerState.Alive) { return(Task.FromResult(true)); } room.GameRule.OnScoreSuicide(plr); return(Task.FromResult(true)); }