Class OrderFromStaffAction
An abstract action class that allows creating actions where a PersonLike orders a given item from a LotEmployment employee. This action expects the employee to then execute an action that leaves them with an item in their hand that can be passed to the one who submitted the order.
public abstract class OrderFromStaffAction : SocialAction, IGenericDataHolder
- Inheritance
-
JsonTypeSafeGenericDataHolderOrderFromStaffAction
- Implements
-
IGenericDataHolder
- Inherited Members
-
JsonTypeSafeGenericDataHolder.GetDataKeys()
- Extension Methods
Constructors
OrderFromStaffAction(ActionInfo)
Creates a new typeless action with the given action information.
protected OrderFromStaffAction(ActionInfo info)
Parameters
info
ActionInfoThe information for this action.
OrderFromStaffAction(ActionType, ActionInfo)
Creates a new action with the given action information.
public OrderFromStaffAction(ActionType type, ActionInfo info)
Parameters
type
ActionTypeThe type for this action.
info
ActionInfoThe information for this action.
Properties
ImportantObject
The category of the object that the LotEmployment employee should find and walk to to prepare the order.
protected abstract ObjectCategory ImportantObject { get; }
Property Value
MaxDistanceFromObject
The maximum distance that the PersonLike ordering should be able to stand away from the ImportantObject to do so.
protected virtual int MaxDistanceFromObject { get; }
Property Value
PickUpOrderAction
The action that the PersonLike picking up the order should execute to pick it up and further interact with it. For food items, Eat should be returned.
protected abstract ActionType PickUpOrderAction { get; }
Property Value
Methods
CanMultitask(Action)
Return true on this method if this action can be multi-tasked along with the passed Action. To actually check this property, CanMultitask(Action, Action) should be used as it compares both objects. A multi-tasking is an action that is currently active along with another action. By default, multi-tasking is disallowed for any action.
public override bool CanMultitask(Action other)
Parameters
other
ActionThe action to multi-task with
Returns
- bool
Whether this action can be multi-tasked
CreateFirstActions()
Return a set of actions that should be executed before this action. Even if the yield statement is used, all actions will be collected into a list at the start of this action's invocation. If no action gets returned in this function, this action fails. If the returned set only contains null items, no first actions will be executed.
protected override IEnumerable<Action> CreateFirstActions()
Returns
- IEnumerable<Action>
A set of actions that should run before this action
CreatePrepareAction(ActionInfo)
Returns the action that should be executed by the LotEmployment employee to prepare the order.
protected abstract Action CreatePrepareAction(ActionInfo importantObject)
Parameters
importantObject
ActionInfoThe object found using the ImportantObject category.
Returns
- Action
The action that should be executed by the employee.
GetNextAction(CompletionType)
Returns an action that should be queued up immediately after this action completes. The queued up action is immediately started in the slot that this action occupied. Can be null, and is null by default.
public override Action GetNextAction(CompletionType completion)
Parameters
completion
CompletionTypeThe type that this action completed with
Returns
- Action
The follow-up action
IsConversationCompleted()
SocialAction version of IsCompleted(). This method returns whether the conversation should be marked as completed. Note that this method is only called for the IsMain part of the conversation.
protected override CompletionType IsConversationCompleted()
Returns
- CompletionType
Whether this conversation is completed
UpdateConversation(GameTime, TimeSpan, float)
SocialAction version of Update(GameTime, TimeSpan, float). This method is called every update frame during an active conversation for both conversation partners. By default, this method only increases ConversationTime.
protected override void UpdateConversation(GameTime time, TimeSpan passedInGame, float speedMultiplier)