/// <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); }
public Core.Game.Item Generate(Core.Interface.IWorldState worldState) { return(new Core.Game.Item(new Core.Game.Items.UnknownItemView())); }
/// <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)); }