// MARK: - Lifecycle public AW2DCharacterBaseState(AW2DEntityPosition position, AW2DAction examineAction, AW2DAction talkToAction, AW2DAction interactWithAction) { this.position = position; this.examineAction = examineAction; this.talkToAction = talkToAction; this.interactWithAction = interactWithAction; }
public void talkTo() { AW2DAction talkToAction = states[currentState].talkToAction; talkToAction.subject = this; talkToAction.execute(); }
public void interactWith() { AW2DAction interactWithAction = states[currentState].interactWithAction; interactWithAction.subject = this; interactWithAction.execute(); }
// MARK: - Actions public void examine() { AW2DAction examineAction = states[currentState].examineAction; examineAction.subject = this; examineAction.execute(); }
// MARK: - Lifecycle public AW2DPassage(AW2DPassageID id, AW2DEnvironmentID envA, AW2DEnvironmentID envB, AW2DAction passageAction = null) { this.id = id; this.envA = envA; this.envB = envB; this.passageAction = passageAction; }
void pickUp() { AW2DAction pickUpAction = states[currentState].pickUpAction; pickUpAction.subject = this; pickUpAction.execute(); }
// MARK: - Lifecycle public AW2DItemBaseState(AW2DEntityPosition position, AW2DAction examineAction, AW2DAction interactWithAction, AW2DAction pickUpAction, AW2DAction useOnAction) { this.position = position; this.examineAction = examineAction; this.interactWithAction = interactWithAction; this.pickUpAction = pickUpAction; this.useOnAction = useOnAction; }
bool useOn(AW2DEntity entity = null) { AW2DAction useOnAction = states[currentState].useOnAction; useOnAction.subject = this; useOnAction.execute(); AW2DInteractAction useInteraction = useOnAction as AW2DInteractAction; if (useInteraction != null) { useInteraction.interactionObject = entity; useInteraction.execute(); return(useInteraction.hasInteracted); } useOnAction.execute(); return(false); }