Ejemplo n.º 1
0
            /// <summary>
            /// Update state of order and return is ready to deliver.
            /// </summary>
            /// <param name="order">Updating order</param>
            /// <param name="worldState">Current world state</param>
            /// <returns>Whether is ready to deliver</returns>
            public bool UpdateOrder(Core.Game.Shopping.Order order, Core.Interface.IWorldState worldState)
            {
                switch (order.orderState)
                {
                case Core.Game.Shopping.OrderState.kPlaced:
                    if (m_workDays.Contains(worldState.LogicTime.DayOfWeek))
                    {
                        if (worldState.LogicTime.Hours >= 9 && worldState.LogicTime.Hours < 18)
                        {
                            order.orderState = Core.Game.Shopping.OrderState.kManufactoring;
                            m_manufactoringTable.Add(order.serialNumber,
                                                     worldState.LogicTime + Core.Common.GameLogicTime.FromHours(28));
                        }
                    }
                    return(false);

                case Core.Game.Shopping.OrderState.kManufactoring:
                    bool isFinished = true;
                    if (m_manufactoringTable.ContainsKey(order.serialNumber))
                    {
                        if (m_manufactoringTable[order.serialNumber] <= worldState.LogicTime)
                        {
                            m_manufactoringTable.Remove(order.serialNumber);
                            order.orderItem = order.orderedShopItem.Generate(worldState);
                        }
                        else
                        {
                            isFinished = false;
                        }
                    }
                    if (isFinished)
                    {
                        if (worldState.LogicTime.Hours >= 9 && worldState.LogicTime.Hours < 18)
                        {
                            order.orderState = Core.Game.Shopping.OrderState.kWaitSending;
                            return(true);
                        }
                    }
                    return(false);
                }

                return(true);
            }
Ejemplo n.º 2
0
 public Core.Game.Item Generate(Core.Interface.IWorldState worldState)
 {
     return(new Core.Game.Item(new Core.Game.Items.UnknownItemView()));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Generate real item instance
 /// </summary>
 /// <param name="worldState">Current world state</param>
 /// <returns>Generated item</returns>
 public Core.Game.Item Generate(Core.Interface.IWorldState worldState)
 {
     return(m_itemGenerator.Generate(worldState));
 }