private static IActorTask TakeAllFromContainerTask(IActor actor, IStaticObject container) { var inventoryTransfer = new PropTransfer(actor.Person.GetModule <IInventoryModule>(), container.GetModule <IPropContainer>().Content.CalcActualItems(), System.Array.Empty <IProp>()); var containerTransfer = new PropTransfer(container.GetModule <IPropContainer>().Content, System.Array.Empty <IProp>(), container.GetModule <IPropContainer>().Content.CalcActualItems()); return(new TransferPropsTask(actor, new[] { inventoryTransfer, containerTransfer })); }
protected override void ExecuteTacticCommand() { var inventoryTransfer = new PropTransfer(TransferMachine.Inventory.PropStore, TransferMachine.Inventory.PropAdded, TransferMachine.Inventory.PropRemoved); var containerTransfer = new PropTransfer(TransferMachine.Container.PropStore, TransferMachine.Container.PropAdded, TransferMachine.Container.PropRemoved); var intention = new Intention <TransferPropsTask>(a => new TransferPropsTask(a, new[] { inventoryTransfer, containerTransfer })); PlayerState.TaskSource.Intent(intention); }
protected override void ExecuteTacticCommand() { var inventoryTransfer = new PropTransfer(TransferMachine.Inventory.PropStore, TransferMachine.Inventory.PropAdded, TransferMachine.Inventory.PropRemoved); var containerTransfer = new PropTransfer(TransferMachine.Container.PropStore, TransferMachine.Container.PropAdded, TransferMachine.Container.PropRemoved); var taskContext = new ActorTaskContext(_player.SectorNode.Sector); var intention = new Intention <TransferPropsTask>(actor => new TransferPropsTask(actor, taskContext, new[] { inventoryTransfer, containerTransfer })); PlayerState.TaskSource.Intent(intention, PlayerState.ActiveActor.Actor); }
protected override void ExecuteTacticCommand() { if (TransferMachine is null) { throw new InvalidOperationException(); } var sector = _player.SectorNode.Sector; if (sector is null) { throw new InvalidOperationException(); } var inventoryTransfer = new PropTransfer(TransferMachine.Inventory.PropStore, TransferMachine.Inventory.PropAdded, TransferMachine.Inventory.PropRemoved); var containerTransfer = new PropTransfer(TransferMachine.Container.PropStore, TransferMachine.Container.PropAdded, TransferMachine.Container.PropRemoved); var taskContext = new ActorTaskContext(sector); var intention = new Intention <TransferPropsTask>(actor => new TransferPropsTask(actor, taskContext, new[] { inventoryTransfer, containerTransfer })); var actor = PlayerState.ActiveActor?.Actor; if (actor is null) { throw new InvalidOperationException(); } var taskSource = PlayerState.TaskSource; if (taskSource is null) { throw new InvalidOperationException(); } taskSource.Intent(intention, actor); }