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

Represents a single conversation topic, ie. a choice that the player can choose in the UI or something that an NPC wants to talk about once you get near them. More...

Public Member Functions

Functions
bool InviteParticipatingCharactersIntoConversation () const
 Tries to get the RequiredOtherCharacters to join our conversation group.
bool AreParticipatingCharactersAbleToEnterConversation () const
 Returns true if Participating Characters are able to join the Conversation when requested.
bool AreParticipatingCharactersInSameConversation () const
 Returns true if all characters listed in RequiredOtherCharacters are in a conversation with us.
bool AreParticipatingCharactersNearby (float32 ExtraDistance=0.000000) const
 Returns true if all characters listed in RequiredOtherCharacters are nearby.
bool IsVisible () const
 Returns whether this topic may be shown to the player (Needs to pass Rules first). Override to have custom dynamic script conditions.
void DB (int64 CallDebugId, bool bValue) const
 DebugBoolean. Set the state of a condition for the ConversationDebugger.
void DC (int64 CallDebugId, EConversationDebugInfo Info) const
 DebugCall. Set the state of something for the ConversationDebugger.
void EndConversation ()
 When called during acting, ends the conversation for all participants.
AGothicCharacterState GetCharacter (FName UniqueName) const
 Returns the state of the given character.
UConversationGroup GetCurrentConversationGroup () const
 Tries to access the conversation group this topic belongs to right now.
FName GetKnowledge () const
 Knowledge to gain after hearing this topic.
AGothicCharacterState GetOther () const
 When acting, returns the listener of the conversation.
UGameplayAbility_AI GetOwner () const
 When acting, returns the owner of this Topic.
AGothicCharacterState GetSelf () const
 When acting, returns the owner of this Topic.
bool HasActImplementation () const
 Whether this is a topic that we can perform. It may be just a structural class.
bool HasIsVisibleImplementation () const
 Whether this topic has a scripted "IsVisible" function.
void Act ()
 Coroutine containing the acting sequence of how this conversation should be played (Must be defined in Script).
bool IsEnd () const
 If true, this is an "End" topic that does nothing but to get us out of the conversation.
bool IsForced () const
 If true, this topic should not appear inside the topic selection list. Instead, the NPC should start talking without any player input.
bool IsStoryDebuggerAttached () const
 Returns true if the story debugger is attached and will receive data.
void RequestCameraReverseShot ()
 Reverse the current Preset of the Camera (Switch Speaker and invert).
void RequestCameraSnapToCharacter (const AGothicCharacterState CharacterToLookAt)
 If the player is participating, let's them look at the given character via their controller. Mostly intended to be used for when the conversation camera is not active.
void RequestCameraSnapToInteractionSpot (FInteractionSpotHandle InteractionSpot)
 If the player is participating, let's them look at the given InteractionSpot via their controller. Mostly intended to be used for when the conversation camera is not active.
void RequestCameraToLookAtCharacter (const AGothicCharacterState CharacterToLookAt)
 If the player is participating, let's them look at the given character via their controller. Mostly intended to be used for when the conversation camera is not active.
void RequestCameraToLookAtInteractionSpot (FInteractionSpotHandle InteractionSpot)
 If the player is participating, let's them look at the given InteractionSpot via their controller. Mostly intended to be used for when the conversation camera is not active.
void RequestStartConversationCamera ()
 When the conversation was started without the ConversationCamera, this can be called to activate it later..
void RequestStopConversationCamera ()
 When the conversation was started with the ConversationCamera, this can be called to stop it later.
void ReturnToLastSelection (int NumLevels=1)
 When called during acting from inside a subtopic, will return to the last topic-selection.
void SetPermanent (bool bIsPermanent)
 Whether to always show this topic, even if it was heard before.
bool WasInitialForcedLinePlayed ()
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 TSubclassOf< UConversationTopic > FindTopicClassByName (FName TopicName)
 Looks up the topic class for the given topic class name.
static UClass StaticClass ()
static TSubclassOf< UConversationTopic > FindTopicClassByDebugId (int64 DebugId)
 Looks up the topic class for the given debug ID.
Static Public Member Functions inherited from UObject
static UClass StaticClass ()

Public Attributes

ConversationTopic
bool bIsFollowupTopic
 If true, this will not appear in the main topic list, but may be executed after another topic has finished that matches the rules of this.
FName WithCharacter
 The character who can ask about this topic..
TArray< FName > RequiredNearbyCharacters
 What other characters need to be nearby for this topic?
TArray< FName > ExtraCharactersToInvite
 What other characters need to invited into the conversation? (Must also be nearby).
float32 RequiredOtherCharactersMaxDistance
 How far can the other characters be from the main character for this topic to be available?
FText Caption
 Text to be shown in the Choice UI.
bool bStartedWithInitialForcedLine
 True if this InitialForcedTopic was played.
int PriorityRank
 The lower the PriorityRank, the more "important" the topic is deemed. Negative PriorityRanks will cause the Topic to be acted immediately without the player having to choose it first in the UI. (Forced Conversation, "important" in the OG).
FTopicRules Rules
 Static rules for when this topic should be visible. See documentation of FTopicRules for more info.
FText InitialForcedLine
 Line to be spoken at the start of forced conversations.
EConversationForceSense ForcedSenseType
 Type for selecting a perception sense for this forced topic.
bool bIsSubTopic
 If true, this will not appear in the main topic list, but can only be used as part of a subtopic selection.
FName ForCharacter
 The character this topic will be available at.
bool bIsFallbackTopic
 If true, this will not appear in the main topic list. It will automatically be used when there are no other topics to talk about.
bool bIsAmbientTopic
 If true, this topic will not block the characters from moving and it will not use any camera actions.
bool bSayHeyYou
 If true this topic is supposed to play the "hey you" line at the start of conversation.
TSet< FName > JustOne
 If multiple topics share one of the names in here, show only the highest priority one.
FGameplayTagContainer PropertyTags
 Custom metadata tags that can be added to this topic to configure how it should behave.
int64 DebugId
 Optional Debug ID of this topic.
FConversationTopicForceSettings ForceSettings
 If this is a forced topic, the settings here allow you to configure distances, perceptions, walking, etc.
Variables
const FName Knowledge
 Knowledge to gain after hearing this topic.
const AGothicCharacterState Other
 When acting, returns the listener of the conversation.
const UGameplayAbility_AI Owner
 When acting, returns the owner of this Topic.
const AGothicCharacterState Self
 When acting, returns the owner of this Topic.
const UConversationGroup CurrentConversationGroup
 Tries to access the conversation group this topic belongs to right now.
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

Represents a single conversation topic, ie. a choice that the player can choose in the UI or something that an NPC wants to talk about once you get near them.

It contains the "stage directions" of how the conversation should play out: Who says what, which actions to perform, etc.

Additionally, it provides a set of rules and conditions that need to pass for this topic to be available to the player to choose or an NPC to come forward with it.

@note These objects are not supposed to be modified at runtime.

Member Function Documentation

◆ Act()

void Act ( )

Coroutine containing the acting sequence of how this conversation should be played (Must be defined in Script).

◆ AreParticipatingCharactersAbleToEnterConversation()

bool AreParticipatingCharactersAbleToEnterConversation ( ) const

Returns true if Participating Characters are able to join the Conversation when requested.

◆ AreParticipatingCharactersInSameConversation()

bool AreParticipatingCharactersInSameConversation ( ) const

Returns true if all characters listed in RequiredOtherCharacters are in a conversation with us.

◆ AreParticipatingCharactersNearby()

bool AreParticipatingCharactersNearby ( float32 ExtraDistance = 0.000000) const

Returns true if all characters listed in RequiredOtherCharacters are nearby.

◆ DB()

void DB ( int64 CallDebugId,
bool bValue ) const

DebugBoolean. Set the state of a condition for the ConversationDebugger.

◆ DC()

void DC ( int64 CallDebugId,
EConversationDebugInfo Info ) const

DebugCall. Set the state of something for the ConversationDebugger.

◆ EndConversation()

void EndConversation ( )

When called during acting, ends the conversation for all participants.

◆ FindTopicClassByDebugId()

TSubclassOf< UConversationTopic > FindTopicClassByDebugId ( int64 DebugId)
static

Looks up the topic class for the given debug ID.

◆ FindTopicClassByName()

TSubclassOf< UConversationTopic > FindTopicClassByName ( FName TopicName)
static

Looks up the topic class for the given topic class name.

◆ GetCharacter()

AGothicCharacterState GetCharacter ( FName UniqueName) const

Returns the state of the given character.

◆ GetCurrentConversationGroup()

UConversationGroup GetCurrentConversationGroup ( ) const

Tries to access the conversation group this topic belongs to right now.

◆ GetKnowledge()

FName GetKnowledge ( ) const

Knowledge to gain after hearing this topic.

◆ GetOther()

AGothicCharacterState GetOther ( ) const

When acting, returns the listener of the conversation.

◆ GetOwner()

UGameplayAbility_AI GetOwner ( ) const

When acting, returns the owner of this Topic.

◆ GetSelf()

AGothicCharacterState GetSelf ( ) const

When acting, returns the owner of this Topic.

◆ HasActImplementation()

bool HasActImplementation ( ) const

Whether this is a topic that we can perform. It may be just a structural class.

◆ HasIsVisibleImplementation()

bool HasIsVisibleImplementation ( ) const

Whether this topic has a scripted "IsVisible" function.

◆ InviteParticipatingCharactersIntoConversation()

bool InviteParticipatingCharactersIntoConversation ( ) const

Tries to get the RequiredOtherCharacters to join our conversation group.

◆ IsEnd()

bool IsEnd ( ) const

If true, this is an "End" topic that does nothing but to get us out of the conversation.

◆ IsForced()

bool IsForced ( ) const

If true, this topic should not appear inside the topic selection list. Instead, the NPC should start talking without any player input.

◆ IsStoryDebuggerAttached()

bool IsStoryDebuggerAttached ( ) const

Returns true if the story debugger is attached and will receive data.

◆ IsVisible()

bool IsVisible ( ) const

Returns whether this topic may be shown to the player (Needs to pass Rules first). Override to have custom dynamic script conditions.

◆ RequestCameraReverseShot()

void RequestCameraReverseShot ( )

Reverse the current Preset of the Camera (Switch Speaker and invert).

◆ RequestCameraSnapToCharacter()

void RequestCameraSnapToCharacter ( const AGothicCharacterState CharacterToLookAt)

If the player is participating, let's them look at the given character via their controller. Mostly intended to be used for when the conversation camera is not active.

◆ RequestCameraSnapToInteractionSpot()

void RequestCameraSnapToInteractionSpot ( FInteractionSpotHandle InteractionSpot)

If the player is participating, let's them look at the given InteractionSpot via their controller. Mostly intended to be used for when the conversation camera is not active.

◆ RequestCameraToLookAtCharacter()

void RequestCameraToLookAtCharacter ( const AGothicCharacterState CharacterToLookAt)

If the player is participating, let's them look at the given character via their controller. Mostly intended to be used for when the conversation camera is not active.

◆ RequestCameraToLookAtInteractionSpot()

void RequestCameraToLookAtInteractionSpot ( FInteractionSpotHandle InteractionSpot)

If the player is participating, let's them look at the given InteractionSpot via their controller. Mostly intended to be used for when the conversation camera is not active.

◆ RequestStartConversationCamera()

void RequestStartConversationCamera ( )

When the conversation was started without the ConversationCamera, this can be called to activate it later..

◆ RequestStopConversationCamera()

void RequestStopConversationCamera ( )

When the conversation was started with the ConversationCamera, this can be called to stop it later.

◆ ReturnToLastSelection()

void ReturnToLastSelection ( int NumLevels = 1)

When called during acting from inside a subtopic, will return to the last topic-selection.

◆ SetPermanent()

void SetPermanent ( bool bIsPermanent)

Whether to always show this topic, even if it was heard before.

◆ StaticClass()

UClass StaticClass ( )
static

◆ WasInitialForcedLinePlayed()

bool WasInitialForcedLinePlayed ( )

Member Data Documentation

◆ bIsAmbientTopic

bool bIsAmbientTopic

If true, this topic will not block the characters from moving and it will not use any camera actions.

◆ bIsFallbackTopic

bool bIsFallbackTopic

If true, this will not appear in the main topic list. It will automatically be used when there are no other topics to talk about.

◆ bIsFollowupTopic

bool bIsFollowupTopic

If true, this will not appear in the main topic list, but may be executed after another topic has finished that matches the rules of this.

◆ bIsSubTopic

bool bIsSubTopic

If true, this will not appear in the main topic list, but can only be used as part of a subtopic selection.

◆ bSayHeyYou

bool bSayHeyYou

If true this topic is supposed to play the "hey you" line at the start of conversation.

◆ bStartedWithInitialForcedLine

bool bStartedWithInitialForcedLine

True if this InitialForcedTopic was played.

◆ Caption

FText Caption

Text to be shown in the Choice UI.

◆ CurrentConversationGroup

const UConversationGroup CurrentConversationGroup

Tries to access the conversation group this topic belongs to right now.

◆ DebugId

int64 DebugId

Optional Debug ID of this topic.

◆ ExtraCharactersToInvite

TArray<FName> ExtraCharactersToInvite

What other characters need to invited into the conversation? (Must also be nearby).

◆ ForcedSenseType

EConversationForceSense ForcedSenseType

Type for selecting a perception sense for this forced topic.

◆ ForceSettings

If this is a forced topic, the settings here allow you to configure distances, perceptions, walking, etc.

◆ ForCharacter

FName ForCharacter

The character this topic will be available at.

◆ InitialForcedLine

FText InitialForcedLine

Line to be spoken at the start of forced conversations.

◆ JustOne

TSet<FName> JustOne

If multiple topics share one of the names in here, show only the highest priority one.

◆ Knowledge

const FName Knowledge

Knowledge to gain after hearing this topic.

◆ Other

const AGothicCharacterState Other

When acting, returns the listener of the conversation.

◆ Owner

const UGameplayAbility_AI Owner

When acting, returns the owner of this Topic.

◆ PriorityRank

int PriorityRank

The lower the PriorityRank, the more "important" the topic is deemed. Negative PriorityRanks will cause the Topic to be acted immediately without the player having to choose it first in the UI. (Forced Conversation, "important" in the OG).

◆ PropertyTags

FGameplayTagContainer PropertyTags

Custom metadata tags that can be added to this topic to configure how it should behave.

◆ RequiredNearbyCharacters

TArray<FName> RequiredNearbyCharacters

What other characters need to be nearby for this topic?

◆ RequiredOtherCharactersMaxDistance

float32 RequiredOtherCharactersMaxDistance

How far can the other characters be from the main character for this topic to be available?

◆ Rules

FTopicRules Rules

Static rules for when this topic should be visible. See documentation of FTopicRules for more info.

◆ Self

When acting, returns the owner of this Topic.

◆ WithCharacter

FName WithCharacter

The character who can ask about this topic..