G1R AngelScript
Scripting reference for the Gothic 1 Remake
Loading...
Searching...
No Matches
UAbilityTask_InteractionSpot Class Reference

Task that is executed on an interaction spot. Automatically claims and unclaims the spot for you. More...

Public Member Functions

Functions
void HandleMovementInput (FVector LocalInputDirection)
 Called whenever there is new movement input data from the player. The given direction vector is as seen by the used object.
void HandleTagEvent (const FGameplayTag Tag, const FGameplayEventData EventData)
 Called when one of the subscribed gameplay tag events fired.
bool CanHandleSubActionNow (FGameplayTag ActionTag)
 Override and return true if the passed sub-action can be handled by this task.
bool CanSwitchToTaskNow (UAbilityTask_InteractionSpot Task)
 Override and return true if the passed sub-action can be handled by this task.
AGothicCharacter GetSelf () const
 Character doing this task.
AActor GetUsedActor () const
 Returns the actor we're interacting with, if there is one.
void AddOwnedTagToASC (FGameplayTag Tag)
 Adds a tag onto our AbilitySystemComponent. Remembers that this tag was added by this task so we can safely remove it without removing something that was not added here later.
bool HasOwnedGameplayTag (FGameplayTag Tag) const
 Returns true if the Avatars AbilitySystemComponent has the given owned tag. (ie. State.Speaking).
FVector InverseTransformVectorLocalToUsedSpot (FVector WorldSpaceDirectionVector) const
 Given a world-space direction vector, transforms it so that it is local to the used object or spot.
void PerformSubAction (FGameplayTag ActionTag)
 Called when a sub-action was requested. Override and do whatever needs to be done for this sub-action.
void RemoveOwnedTagFromASC (FGameplayTag Tag)
 Removes a tag from our AbilitySystemComponent that was previously added via AddOwnedTagToASC(). Does nothing if no such tag is currently on the ASC.
void RemoveOwnedTagsFromASC (FGameplayTagContainer Tags)
 Removes all given tags from our AbilitySystemComponent that was previously added via AddOwnedTagToASC(). Does nothing if no such tag is currently on the ASC.
Public Member Functions inherited from UAbilityTaskCoroutine
void StopWaitingAndContinueTask ()
 Cancels any WaitSeconds/WaitTask/etc calls that were currently blocking the DoTask-Coroutine.
const EGenericTaskResult & WaitForFirstTaskToEnd (FAbilityTaskExecutor Task1, FAbilityTaskExecutor Task2, FAbilityTaskExecutor Task3=FAbilityTaskExecutor(), FAbilityTaskExecutor Task4=FAbilityTaskExecutor(), FAbilityTaskExecutor Task5=FAbilityTaskExecutor(), FAbilityTaskExecutor Task6=FAbilityTaskExecutor())
const EGenericTaskResult & WaitForLastTaskToEnd (FAbilityTaskExecutor Task1, FAbilityTaskExecutor Task2, FAbilityTaskExecutor Task3=FAbilityTaskExecutor(), FAbilityTaskExecutor Task4=FAbilityTaskExecutor(), FAbilityTaskExecutor Task5=FAbilityTaskExecutor(), FAbilityTaskExecutor Task6=FAbilityTaskExecutor())
const EGenericTaskResult & DoOneOf (float32 Weight1, FAbilityTaskExecutor Task1, float32 Weight2, FAbilityTaskExecutor Task2, float32 Weight3=0.0f, FAbilityTaskExecutor Task3=FAbilityTaskExecutor(), float32 Weight4=0.0f, FAbilityTaskExecutor Task4=FAbilityTaskExecutor(), float32 Weight5=0.0f, FAbilityTaskExecutor Task5=FAbilityTaskExecutor(), float32 Weight6=0.0f, FAbilityTaskExecutor Task6=FAbilityTaskExecutor(), float32 Weight7=0.0f, FAbilityTaskExecutor Task7=FAbilityTaskExecutor(), float32 Weight8=0.0f, FAbilityTaskExecutor Task8=FAbilityTaskExecutor())
void CancelAwaitedTaskAndEndAfterwards ()
 Cancels the task that is currently being executed by calling ExternalCancel on it.
void DoTask ()
 Override this in Script to define what should happen in this task!
void OnActivate ()
 Override this in Script to define what should happen when task is started.
void PerformAutoTimeskip ()
 Automatically executes the coroutine and requests timeskips on awaited tasks and timers. Override RequestTimeskip and call this to have this behavior for your task.
const EGenericTaskResult & WaitForTask (FAbilityTaskExecutor Task)
void WaitForEvent (UObject Object, FName MulticastDelegateName)
 Call from DoTask() - Waits until the given delegate on the given object is called.
const EGenericTaskResult & WaitForTask (UAbilityTaskGeneric Task)
 Call from DoTask() - Runs the given task and pauses the function until the task has ended.
const EGenericTaskResult & WaitForTaskTimeLimited (float32 CancelAfterSeconds, UAbilityTaskGeneric Task)
 Call from DoTask() - Runs the given task and pauses the function until the task has ended or the given time has passed. If the timer is reached, the task is cancelled.
void WaitOneTick ()
 Call from DoTask() - Pauses the function for one single tick and resumes execution in the next frame.
void WaitSeconds (float32 Seconds)
 Call from DoTask() - Pauses the function for time specified and resumes execution after the given time passed.
void WaitUntil (float32 WorldTimeSeconds)
 Call from DoTask() - Pauses the function until the world time (World.TimeSeconds) has reached the given time and resumes execution.
Public Member Functions inherited from UAbilityTaskGeneric
FInGameTime GetInGameTimeNow () const
 Returns the current InGame-Time (fast-forwarded when the player sleeps).
void HandleAvatarChanged ()
 Called when the Character this state belongs to was spawned or despawned.
void OnExternalCancel ()
 Override to decide what should happen when your task got cancelled from outside.
void EndTaskAsCancelled ()
 Call this instead of EndTask() to signal the task was cancelled.
void EndTaskAsFailure ()
 Call this instead of EndTask() to signal the task having failed.
void EndTaskAsSuccess ()
 Call this instead of EndTask() to signal the task ending successfully.
void EndTaskWithResult (EGenericTaskResult Result)
 Call this instead of EndTask() to signal the task having failed.
AGothicAIController GetAvatarAIController () const
 If the avatar is controlled by an AIController, returns it. Nullptr otherwise.
AGothicCharacter GetAvatarCharacter () const
 If the avatar is a GothicCharacter, returns it. Nullptr otherwise.
AGothicCharacterState GetAvatarCharacterState () const
 If the avatar is a GothicCharacter, returns its CharacterState. Nullptr otherwise.
AGothicNPCState GetAvatarNPCState () const
 If the avatar is a n NPC, returns its NPCState. Nullptr otherwise.
APlayerController GetAvatarPlayerController () const
 If the avatar is controlled by a PlayerController, returns it. Nullptr otherwise.
void ExternalCancel ()
FInGameTime GetRuntimeInGame () const
 How long this task has been running for (in InGame-time).
float32 GetRuntimeSeconds () const
 How long this task has been running for (in seconds).
float32 GetTimeRequestedToSkip () const
 Returns how many seconds we're supposed to skip.
void HandleTimeskipRequest ()
 Let this task skip forward in time, ie. teleporting the Avatar to their destination or somewhere along the way or skipping animations. Use GetTimeRequestedToSkip() and ReportTimeSkipped(...) to get info on how much to skip and to notify if you were able to skip something.
bool HasBeenActivated () const
 Returns true if ReadyForActivated has ever been called on this task.
bool HasTaskJustStarted (float32 ThresholdRealtimeSeconds=10.000000) const
 Returns true if this task has not been running for long yet. For Dailyroutine-Tasks this can be used to check if the task was activated via the regular schedule or re-activated after the schedule was interrupted.
bool IsInDailyRoutineSimulation () const
 Returns true, if this task is owned by an NPC that does DailyRoutine simulation (has no visuals) right now.
bool ReportTimeSkip (float32 SecondsThatWillBeSkipped)
 Reports that this task is able to skip some of the requested time to skip and requests for permission to do so. Returns true when the timeskip was accepted and it's okay to do the actions now.
bool ReportTimeSkipWhateverIsLeft ()
 Reports that this task would run forever and can skip all the time that we have left. Returns true when the timeskip was accepted and it's okay to do the actions now.
void SetCustomPathfollowingSetting (FGothicPathfollowSettings PathfollowSetting)
 When pathfollowing should behave different for this AIState, provide your own settings.
Public Member Functions inherited from UAbilityTaskBase
bool IsFinished () const
bool IsPaused () const
UAbilityTaskBase DuplicateTask (UGameplayAbility ToAbility, UObject Outer=nullptr)
bool IsDuplicateOf (const UAbilityTaskBase Other) const
 Returns true if this task was created by duplicating the given one.
void MakeChildOf (UAbilityTaskBase OtherTask)
bool IsActive () const
Public Member Functions inherited from UAngelscriptAbilityTask
void OnDestroy (bool bInOwnerFinished)
void InitSimulatedTask (UGameplayTasksComponent InGameplayTasksComponent)
bool IsWaitingOnAvatar () const
void Activate ()
bool IsWaitingOnRemotePlayerdata () const
void TickTask (float32 DeltaTimeSecs)
void SetWaitingOnAvatar ()
void ClearWaitingOnAvatar ()
void ClearWaitingOnRemotePlayerData ()
UGameplayAbility BP_GetAbility (bool bInOwnerFinished) const
FGameplayAbilitySpecHandle GetAbilitySpecHandle (bool bInOwnerFinished) const
UAbilitySystemComponent GetAbilitySystemComponent ()
bool ShouldBroadcastAbilityTaskDelegates () const
bool IsForRemoteClient () const
bool IsLocallyControlled () const
bool IsPredictingClient () const
UGameplayAbility GetAbility () const
bool GetIsPausable ()
void SetIsPausable (bool bNewState)
void SetIsSimulatedTask (bool bNewState)
void SetAbilitySystemComponent (UAbilitySystemComponent InAbilitySystemComponent)
void SetIsTickingTask (bool bNewState)
void SetWaitingOnRemotePlayerData ()
bool GetIsSimulatedTask ()
bool GetIsSimulating ()
bool GetIsTickingTask ()
Public Member Functions inherited from UGameplayTask
void ReadyForActivation ()
void EndTask ()
 Called explicitly to end the task (usually by the task itself). Calls OnDestroy. Note:: you need to call EndTask before sending out any "on completed" delegates. If you don't the task will still be in an "active" state while the event receivers may assume it's already "finished".
Public Member Functions inherited from UObject
bool MarkPackageDirty () const
void RemoveFromRoot ()
bool GetIsRooted () const
bool IsTransient () const
bool Modify (bool bAlwaysMarkDirty=true)
void SetTransactional (bool bTransactional)
bool IsSupportedForNetworking () const
UClass GetClass () const
UObject GetOuter () const
UObject GetTypedOuter (TSubclassOf< UObject > Target) const
 Traverses the outer chain searching for the next object of a certain type.
UPackage GetOutermost () const
UPackage GetPackage () const
void AddToRoot ()
UWorld GetWorld () const
FName GetName () const
FString GetFullName (const UObject StopOuter=nullptr) const
FString GetPathName (const UObject StopOuter=nullptr) const
bool IsA (const UClass Class) const
 Returns true if this object is of the specified type, or a child of that type.
void SaveConfig ()
void LoadConfig ()
void ReloadConfig ()
void CopyScriptPropertiesFrom (const UObject OtherObject)
void opCast (?&Address) const
FString ToString () const

Static Public Member Functions

Static Functions
static UClass StaticClass ()
Static Public Member Functions inherited from UAbilityTaskCoroutine
static UClass StaticClass ()
Static Public Member Functions inherited from UAbilityTaskGeneric
static UClass StaticClass ()
Static Public Member Functions inherited from UAbilityTaskBase
static UClass StaticClass ()
Static Public Member Functions inherited from UAngelscriptAbilityTask
static UClass StaticClass ()
static UAngelscriptAbilityTask CreateAbilityTaskAndRunIt (TSubclassOf< UAngelscriptAbilityTask > TaskType, UGameplayAbility ThisAbility, FName NewInstanceName=NAME_None)
 This method will both create the task and call ReadyForActivation on it for you immediately.
static UAngelscriptAbilityTask CreateAbilityTask (TSubclassOf< UAngelscriptAbilityTask > TaskType, UGameplayAbility ThisAbility, FName NewInstanceName=NAME_None, UObject Outer=nullptr)
 If you create a task using this function from AS, you must start it manually using ReadyForActivation. This is useful if you want to set up properties on the task before you run it.
Static Public Member Functions inherited from UAbilityTask
static UClass StaticClass ()
Static Public Member Functions inherited from UGameplayTask
static UClass StaticClass ()
Static Public Member Functions inherited from UObject
static UClass StaticClass ()

Public Attributes

AbilityTask_InteractionSpot
bool bRequiresObjectToInteractWith
 Action needs to be done on an interactive object.
TArray< TSubclassOf< AGothicCharacter > > DefaultForCharacterClass
 Auto-add this to all characters based on this class. Explicitly set interactions within a character can override these defaults.
FGameplayTagContainer DefaultInteractionForActions
 When DefaultForCharacterClass is specified, auto add this interaction for the tags given here. Explicitly set action tags within a character can override these defaults.
FGameplayTagContainer TaskEndingTags
 Container with tags for ending this task.
FGameplayTagContainer SupportedSubActions
 What actions can be done while this interaction is already active.
FGameplayTagContainer SubtaskOf
 Can only be entered while doing this exact subtasks.
UAbilityTask_InteractionSpot RequestedSubtaskTemplate
 Set when we're supposed to switch to another action. Will be duplicated and then executed.
UAbilityTask_InteractionSpot ParentTask
 Task which started this task (only valid when using subtasks).
FClockTime StartedAtGameTime
 When this task was started in ingame time.
float32 SecondsToSkipOnActivation
 Set this before starting the task to have it skip some of the starting time (ie. entry animation).
FInteractionSpotHandle Spot
 Spot that should be occupied.
FGameplayTag Action
 Action to do on the spot.
bool bPossibleAnywhere
 Action can be performed without InteractionSpot.
bool bForceCrowdIdleBehaviourToIgnoreMe
 Forces PathfollowSettings of this task to use CrowdIdleBehaviour::IgnoreMe This should be used when NPC cannot block anyone and should not affect other NPCs avoidance. E.g. when sitting on chair, laying on bed - there other NPCs can never walk on, and their avoidance should not be influenced (allows others to pass narrow areas more easily.
FGameplayTagContainer BlockedOwnedTags
 Only allow this interaction if the character does NOT have any of these owned tags.
FGameplayTagContainer RequiredOwnedTags
 Only allow this interaction if the character HAS any of these owned tags.
TSet< EInteractionInputKind > InteractionInputs
 Currently pressed interaction inputs (replicated).
FGameplayTagContainer OwnedTagsWhileActive
 Tags to apply to the AbilitySystemComponent while this interaction is active.
bool bIsPartOfNavigation
 Is this task used for some kind of movement?
bool bPutAwayItemInHandsBeforeInteraction
 Forces character to unequip item if he holds one when interaction starts.
EInteractionSpotEntryDirection PreferredExitDirection
 Preferred Direction to exit towards.
EInteractionEndBehavior EndInteractionBehavior
 Can be set before calling ExternalCancel to request a different kind of Ending behavior.
EInteractionEndBehavior OtherInteractionEndBehaviorOnSwitch
 When this interaction is being switched to from another ongoing interaction, end the other with this behavior.
bool bKeepCharacterZLocationForAlignment
 Enable if you want flying or diving creatures to perform an alignment on spot on XY axis only.
FGameplayTagContainer GameplayTagEventSubscriptions
 Defines which gameplay events will cause HandleTagEvent() to be called.
Variables
const AActor UsedActor
 Returns the actor we're interacting with, if there is one.
const AGothicCharacter Self
 Character doing this task.
Public Attributes inherited from UAbilityTaskCoroutine
bool bIsHighPriorityBudget
 If true, will enqueue this task into the HighPriority budget system queue. Can be changed dynamically at runtime to affect the next enqueue.
FName BudgetWorkload
 If set, uses the BudgetSystem to continue execution after the coroutine was paused. Can be changed dynamically at runtime to affect the next enqueue.
Public Attributes inherited from UAbilityTaskGeneric
FAbilityTaskEndedAnyResultDelegate__AbilityTaskGeneric OnTaskEnded
 Task ended (always called, no matter what the result is).
EGenericTaskResult TaskResult
 Use EndTaskAsSuccess() or EndTaskAsFailure() or set this before calling EndTask() to signal the end result of this task.
FInGameTime TimeTaskActivated
 Ingame time this task was activated.
const AGothicCharacter AvatarCharacter
 If the avatar is a GothicCharacter, returns it. Nullptr otherwise.
const AGothicCharacterState AvatarCharacterState
 If the avatar is a GothicCharacter, returns its CharacterState. Nullptr otherwise.
const AGothicAIController AvatarAIController
 If the avatar is controlled by an AIController, returns it. Nullptr otherwise.
const AGothicNPCState AvatarNPCState
 If the avatar is a n NPC, returns its NPCState. Nullptr otherwise.
const APlayerController AvatarPlayerController
 If the avatar is controlled by a PlayerController, returns it. Nullptr otherwise.
const FInGameTime InGameTimeNow
 Returns the current InGame-Time (fast-forwarded when the player sleeps).
const FInGameTime RuntimeInGame
 How long this task has been running for (in InGame-time).
const float32 RuntimeSeconds
 How long this task has been running for (in seconds).
const float32 TimeRequestedToSkip
 Returns how many seconds we're supposed to skip.
Public Attributes inherited from UAngelscriptAbilityTask
const UGameplayAbility Ability
 GameplayAbility that created us.
UAbilitySystemComponent AbilitySystemComponent
const bool IsSimulating
bool IsPausable
bool IsSimulatedTask
bool IsTickingTask
Public Attributes inherited from UObject
const UClass Class
const UObject Outer
const UPackage Outermost
const UPackage Package
const UWorld World
const FName Name
const bool IsRooted

Detailed Description

Task that is executed on an interaction spot. Automatically claims and unclaims the spot for you.

Member Function Documentation

◆ AddOwnedTagToASC()

void AddOwnedTagToASC ( FGameplayTag Tag)

Adds a tag onto our AbilitySystemComponent. Remembers that this tag was added by this task so we can safely remove it without removing something that was not added here later.

◆ CanHandleSubActionNow()

bool CanHandleSubActionNow ( FGameplayTag ActionTag)

Override and return true if the passed sub-action can be handled by this task.

◆ CanSwitchToTaskNow()

bool CanSwitchToTaskNow ( UAbilityTask_InteractionSpot Task)

Override and return true if the passed sub-action can be handled by this task.

◆ GetSelf()

AGothicCharacter GetSelf ( ) const

Character doing this task.

◆ GetUsedActor()

AActor GetUsedActor ( ) const

Returns the actor we're interacting with, if there is one.

◆ HandleMovementInput()

void HandleMovementInput ( FVector LocalInputDirection)

Called whenever there is new movement input data from the player. The given direction vector is as seen by the used object.

◆ HandleTagEvent()

void HandleTagEvent ( const FGameplayTag Tag,
const FGameplayEventData EventData )

Called when one of the subscribed gameplay tag events fired.

◆ HasOwnedGameplayTag()

bool HasOwnedGameplayTag ( FGameplayTag Tag) const

Returns true if the Avatars AbilitySystemComponent has the given owned tag. (ie. State.Speaking).

◆ InverseTransformVectorLocalToUsedSpot()

FVector InverseTransformVectorLocalToUsedSpot ( FVector WorldSpaceDirectionVector) const

Given a world-space direction vector, transforms it so that it is local to the used object or spot.

◆ PerformSubAction()

void PerformSubAction ( FGameplayTag ActionTag)

Called when a sub-action was requested. Override and do whatever needs to be done for this sub-action.

◆ RemoveOwnedTagFromASC()

void RemoveOwnedTagFromASC ( FGameplayTag Tag)

Removes a tag from our AbilitySystemComponent that was previously added via AddOwnedTagToASC(). Does nothing if no such tag is currently on the ASC.

◆ RemoveOwnedTagsFromASC()

void RemoveOwnedTagsFromASC ( FGameplayTagContainer Tags)

Removes all given tags from our AbilitySystemComponent that was previously added via AddOwnedTagToASC(). Does nothing if no such tag is currently on the ASC.

◆ StaticClass()

UClass StaticClass ( )
static

Member Data Documentation

◆ Action

FGameplayTag Action

Action to do on the spot.

◆ bForceCrowdIdleBehaviourToIgnoreMe

bool bForceCrowdIdleBehaviourToIgnoreMe

Forces PathfollowSettings of this task to use CrowdIdleBehaviour::IgnoreMe This should be used when NPC cannot block anyone and should not affect other NPCs avoidance. E.g. when sitting on chair, laying on bed - there other NPCs can never walk on, and their avoidance should not be influenced (allows others to pass narrow areas more easily.

◆ bIsPartOfNavigation

bool bIsPartOfNavigation

Is this task used for some kind of movement?

◆ bKeepCharacterZLocationForAlignment

bool bKeepCharacterZLocationForAlignment

Enable if you want flying or diving creatures to perform an alignment on spot on XY axis only.

◆ BlockedOwnedTags

FGameplayTagContainer BlockedOwnedTags

Only allow this interaction if the character does NOT have any of these owned tags.

◆ bPossibleAnywhere

bool bPossibleAnywhere

Action can be performed without InteractionSpot.

◆ bPutAwayItemInHandsBeforeInteraction

bool bPutAwayItemInHandsBeforeInteraction

Forces character to unequip item if he holds one when interaction starts.

◆ bRequiresObjectToInteractWith

bool bRequiresObjectToInteractWith

Action needs to be done on an interactive object.

◆ DefaultForCharacterClass

TArray<TSubclassOf<AGothicCharacter> > DefaultForCharacterClass

Auto-add this to all characters based on this class. Explicitly set interactions within a character can override these defaults.

◆ DefaultInteractionForActions

FGameplayTagContainer DefaultInteractionForActions

When DefaultForCharacterClass is specified, auto add this interaction for the tags given here. Explicitly set action tags within a character can override these defaults.

◆ EndInteractionBehavior

EInteractionEndBehavior EndInteractionBehavior

Can be set before calling ExternalCancel to request a different kind of Ending behavior.

◆ GameplayTagEventSubscriptions

FGameplayTagContainer GameplayTagEventSubscriptions

Defines which gameplay events will cause HandleTagEvent() to be called.

◆ InteractionInputs

TSet<EInteractionInputKind> InteractionInputs

Currently pressed interaction inputs (replicated).

◆ OtherInteractionEndBehaviorOnSwitch

EInteractionEndBehavior OtherInteractionEndBehaviorOnSwitch

When this interaction is being switched to from another ongoing interaction, end the other with this behavior.

◆ OwnedTagsWhileActive

FGameplayTagContainer OwnedTagsWhileActive

Tags to apply to the AbilitySystemComponent while this interaction is active.

◆ ParentTask

Task which started this task (only valid when using subtasks).

◆ PreferredExitDirection

EInteractionSpotEntryDirection PreferredExitDirection

Preferred Direction to exit towards.

◆ RequestedSubtaskTemplate

UAbilityTask_InteractionSpot RequestedSubtaskTemplate

Set when we're supposed to switch to another action. Will be duplicated and then executed.

◆ RequiredOwnedTags

FGameplayTagContainer RequiredOwnedTags

Only allow this interaction if the character HAS any of these owned tags.

◆ SecondsToSkipOnActivation

float32 SecondsToSkipOnActivation

Set this before starting the task to have it skip some of the starting time (ie. entry animation).

◆ Self

const AGothicCharacter Self

Character doing this task.

◆ Spot

Spot that should be occupied.

◆ StartedAtGameTime

FClockTime StartedAtGameTime

When this task was started in ingame time.

◆ SubtaskOf

Can only be entered while doing this exact subtasks.

◆ SupportedSubActions

FGameplayTagContainer SupportedSubActions

What actions can be done while this interaction is already active.

◆ TaskEndingTags

FGameplayTagContainer TaskEndingTags

Container with tags for ending this task.

◆ UsedActor

const AActor UsedActor

Returns the actor we're interacting with, if there is one.