Exemple #1
0
        public override void Enter(Miner pMiner)
        {
            if (pMiner.Location != location_type.mac)
            {
                Console.WriteLine(String.Format("\n{0}: Я иду в МакДоналдс, еееу!",
                                                EntityManager.Instance().GetNameOfEntity(pMiner.ID)));
                pMiner.ChangeLocation(location_type.mac);
            }
            //creating order
            int iMaxOrderItems = 1 + pMiner.GetRand.Next(5);
            int iCurrentItem;

            //warning MacWorker about creating new order
            MessageDispatcher.Instance().DispatchMessage(SEND_MSG_IMMEDIATELY,
                                                         pMiner.ID,
                                                         pMiner.GetMcWorkerID,
                                                         (int)message_type_mac.Msg_NewOrder,
                                                         null);
            for (int i = 0; i < iMaxOrderItems; i++)
            {
                iCurrentItem = 3 + pMiner.GetRand.Next(4);

                MessageDispatcher.Instance().DispatchMessage(SEND_MSG_IMMEDIATELY,
                                                             pMiner.ID,
                                                             pMiner.GetMcWorkerID,
                                                             iCurrentItem,
                                                             null);

                //saying what is the current item to add in the order
                switch ((message_type_mac)iCurrentItem)
                {
                case (message_type_mac.Msg_BigTasty):
                {
                    Console.WriteLine(String.Format("\n{0}: - Биг тейсти, пожалуйста",
                                                    EntityManager.Instance().GetNameOfEntity(pMiner.ID)));
                    break;
                }

                case (message_type_mac.Msg_CocaCola):
                {
                    Console.WriteLine(String.Format("\n{0}: - Кока-колу",
                                                    EntityManager.Instance().GetNameOfEntity(pMiner.ID)));
                    break;
                }

                case (message_type_mac.Msg_Free):
                {
                    Console.WriteLine(String.Format("\n{0}: - Картошку 'фри'",
                                                    EntityManager.Instance().GetNameOfEntity(pMiner.ID)));
                    break;
                }

                case (message_type_mac.Msg_IceCream):
                {
                    Console.WriteLine(String.Format("\n{0}: - Мороженое в стаканчике",
                                                    EntityManager.Instance().GetNameOfEntity(pMiner.ID)));
                    break;
                }
                }
            }

            MessageDispatcher.Instance().DispatchMessage(SEND_MSG_IMMEDIATELY,
                                                         pMiner.ID,
                                                         pMiner.GetMcWorkerID,
                                                         (int)message_type_mac.Msg_EndOrder,
                                                         null);
        }