Ejemplo n.º 1
0
        void Awake()
        {
            IdWithType res;

            IdWithType.TryParse(Id, out res);
            idWithType = res;
        }
Ejemplo n.º 2
0
        // イベント:必ず認証完了
        void ReceivedEvent(ISession session, byte[] bytes)
        {
            var c = Communication.Create(bytes);

            switch (c.command)
            {
            case Command.Admin:
                var message = c.Unpack <string>();
                session.Send(Communication.Create(Command.Admin).Pack(message).GetBytes());
                break;

            case Command.GetBall:
                var ball = c.Unpack <IdWithType>();
                MissionLogic.CheckBallGet(GameEnities.Instance.missions, session.Userdata().MissionStates, ball);
                LoggerService.Locator.Info("Rece : Command.GetBall {0}", IdWithType.GetId(ball));
                SendMissionStates(session);
                break;

            case Command.MissionState:
                SendMissionStates(session);
                break;
            }
        }
Ejemplo n.º 3
0
        // ボール取得時の条件確認
        static public void CheckBallGet(Mission[] missions, List <MissionState> states, IdWithType ball)
        {
            EachOrderMission(missions, states, (mission, state) =>
            {
                if (!state.IsOrder())
                {
                    return;                   // 受注中以外なら弾く
                }
                EachCondition(mission, IdType.Ball, (condition, index) =>
                {
                    if (condition.ID == ball)
                    {
                        state.Conditions[index] = Math.Min(condition.Value, state.Conditions[index] + 1);
                    }
                });
            });

            CheckClear(missions, states);
            CheckOrder(missions, states);
        }