protected override IAssignment PrepareNextAssignment() { IAssignment assignment; switch (m_state) { case 0: assignment = new MoveAssignment(this, this.Bed.Environment, this.Bed.Location, DirectionSet.Exact); break; case 1: assignment = new SleepAssignment(this, this.Bed); break; default: throw new Exception(); } return assignment; }
protected override IAssignment PrepareNextAssignment() { IAssignment assignment; switch (m_state) { case 0: assignment = new MoveAssignment(this, m_item.Environment, m_item.Location, DirectionSet.Exact); break; case 1: assignment = new InstallItemAssignment(this, m_item, m_mode); break; default: throw new Exception(); } return assignment; }
protected override IAssignment PrepareNextAssignment() { IAssignment assignment; switch (m_state) { case 0: var positioning = GetPositioning(); assignment = new MoveAssignment(this, this.Environment, this.Location, positioning); break; case 1: assignment = CreateAssignment(); break; default: throw new Exception(); } return assignment; }
protected override IAssignment PrepareNextAssignment() { IAssignment assignment; switch (m_state) { case 0: assignment = new MoveAssignment(this, this.Item.Environment, this.Item.Location, DirectionSet.Exact); break; case 1: assignment = new GetItemAssignment(this, this.Item); break; case 2: assignment = new ConsumeItemAssignment(this, this.Item); break; default: throw new Exception(); } return assignment; }
protected override IAssignment PrepareNextAssignment() { IAssignment assignment; switch (m_state) { case State.MoveToItem: assignment = new MoveAssignment(this, this.Item.Environment, this.Item.Location, DirectionSet.Exact); break; case State.CarryItem: assignment = new CarryItemAssignment(this, this.Item); break; case State.Haul: assignment = new HaulAssignment(this, m_environment, m_location, m_positioning, this.Item); break; case State.DropItem: assignment = new DropItemAssignment(this, this.Item); break; default: throw new Exception(); } return assignment; }
protected override IAssignment PrepareNextAssignment() { IAssignment assignment; switch (m_state) { case State.MoveToItem: assignment = new MoveAssignment(this, this.Item.Environment, this.Item.Location, DirectionSet.Exact); break; case State.CarryItem: assignment = new CarryItemAssignment(this, this.Item); break; case State.HaulToStockpile: if (!m_stockpile.Area.Contains(this.Worker.Location)) { assignment = new HaulToAreaAssignment(this, m_stockpile.Environment, m_stockpile.Area.ToIntGrid3(), DirectionSet.Exact, this.Item); } else { bool ok; var l = m_stockpile.FindEmptyLocation(out ok); if (!ok) throw new Exception(); assignment = new HaulAssignment(this, m_stockpile.Environment, l, DirectionSet.Exact, this.Item); } break; case State.DropItem: assignment = new DropItemAssignment(this, this.Item); break; default: throw new Exception(); } return assignment; }