added destionation targets, illusionary wall WIP, fixes to triggers

This commit is contained in:
2025-10-28 20:11:48 +01:00
parent 4d0231ed09
commit b33a490d67
6 changed files with 2370 additions and 991 deletions

View File

@@ -933,6 +933,48 @@ MonoBehaviour:
value:
type: 0
typeString: CustomFieldType_Text
- id: 23
fields:
- title: Name
value: CH02PosionGlandCollected
type: 0
typeString: CustomFieldType_Text
- title: Initial Value
value: False
type: 2
typeString: CustomFieldType_Boolean
- title: Description
value:
type: 0
typeString: CustomFieldType_Text
- id: 24
fields:
- title: Name
value: CH02KeyReceived
type: 0
typeString: CustomFieldType_Text
- title: Initial Value
value: False
type: 2
typeString: CustomFieldType_Boolean
- title: Description
value:
type: 0
typeString: CustomFieldType_Text
- id: 25
fields:
- title: Name
value: CH02CrystalReceived
type: 0
typeString: CustomFieldType_Text
- title: Initial Value
value: False
type: 2
typeString: CustomFieldType_Boolean
- title: Description
value:
type: 0
typeString: CustomFieldType_Text
conversations:
- id: 1
fields:
@@ -27629,7 +27671,7 @@ MonoBehaviour:
conditionPriority: 2
outgoingLinks: []
conditionsString:
userScript: Variable["CH02HerbalistSpoke"] = true
userScript:
onExecute:
m_PersistentCalls:
m_Calls: []
@@ -27639,8 +27681,8 @@ MonoBehaviour:
y: 341.37122
width: 160
height: 30
canvasScrollPosition: {x: 54.582294, y: 15.388398}
canvasZoom: 1.0820013
canvasScrollPosition: {x: 0, y: 0}
canvasZoom: 1.0700026
- id: 109
fields:
- title: Title
@@ -32577,6 +32619,12 @@ MonoBehaviour:
destinationDialogueID: 1
isConnector: 0
priority: 2
- originConversationID: 133
originDialogueID: 0
destinationConversationID: 133
destinationDialogueID: 5
isConnector: 0
priority: 2
conditionsString:
userScript:
onExecute:
@@ -32632,7 +32680,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Sequence
value: AudioWait(Dialogues/VO/CH02/herbalist/New_Story/Altar/CH02_vo_crystal_wonderer_01)
value: AudioWait(Dialogues/VO/CH02/herbalist/New_Story/Altar with a crystal/CH02_vo_crystal_wonderer_01)
type: 0
typeString: CustomFieldType_Text
- title: pl
@@ -32653,15 +32701,15 @@ MonoBehaviour:
destinationDialogueID: 2
isConnector: 0
priority: 2
conditionsString:
conditionsString: Variable["CH02PosionGlandCollected"] == false
userScript:
onExecute:
m_PersistentCalls:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 20
y: 80
x: 21
y: 102
width: 160
height: 30
- id: 2
@@ -32709,7 +32757,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Sequence
value: AudioWait(Dialogues/VO/CH02/herbalist/New_Story/Altar/CH02_vo_crystal_zora_01)
value: AudioWait(Dialogues/VO/CH02/herbalist/New_Story/Altar with a crystal/CH02_vo_crystal_zora_01)
type: 0
typeString: CustomFieldType_Text
- title: pl
@@ -32737,8 +32785,8 @@ MonoBehaviour:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 20
y: 130
x: 14
y: 227
width: 160
height: 30
- id: 3
@@ -32785,7 +32833,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Sequence
value: AudioWait(Dialogues/VO/CH02/herbalist/New_Story/Altar/CH02_vo_crystal_wonderer_02)
value: AudioWait(Dialogues/VO/CH02/herbalist/New_Story/Altar with a crystal/CH02_vo_crystal_wonderer_02)
type: 0
typeString: CustomFieldType_Text
- title: pl
@@ -32813,8 +32861,8 @@ MonoBehaviour:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 20
y: 180
x: 15
y: 275
width: 160
height: 30
- id: 4
@@ -32862,7 +32910,7 @@ MonoBehaviour:
type: 0
typeString: CustomFieldType_Text
- title: Sequence
value: AudioWait(Dialogues/VO/CH02/herbalist/New_Story/Altar/CH02_vo_crystal_zora_02)
value: AudioWait(Dialogues/VO/CH02/herbalist/New_Story/Altar with a crystal/CH02_vo_crystal_zora_02)
type: 0
typeString: CustomFieldType_Text
- title: pl
@@ -32884,8 +32932,309 @@ MonoBehaviour:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 20
y: 230
x: 15
y: 325
width: 160
height: 30
- id: 5
fields:
- title: Title
value:
type: 0
typeString: CustomFieldType_Text
- title: Pictures
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Description
value:
type: 0
typeString: CustomFieldType_Text
- title: Actor
value: 8
type: 5
typeString: CustomFieldType_Actor
- title: Conversant
value: 1
type: 5
typeString: CustomFieldType_Actor
- title: Menu Text
value:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: Give it here! Yes, this will do, this will do nicely, right, my starlight...?
This will make them remember us. Remember our misery.
type: 0
typeString: CustomFieldType_Text
- title: Parenthetical
value:
type: 0
typeString: CustomFieldType_Text
- title: Audio Files
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Video File
value:
type: 0
typeString: CustomFieldType_Text
- title: Sequence
value:
type: 0
typeString: CustomFieldType_Text
- title: pl
value:
type: 4
typeString: CustomFieldType_Localization
conversationID: 133
isRoot: 0
isGroup: 0
nodeColor:
delaySimStatus: 0
falseConditionAction: Block
conditionPriority: 2
outgoingLinks:
- originConversationID: 133
originDialogueID: 5
destinationConversationID: 133
destinationDialogueID: 6
isConnector: 0
priority: 2
conditionsString: Variable["CH02PosionGlandCollected"] == true
userScript:
onExecute:
m_PersistentCalls:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 233
y: 79
width: 160
height: 30
- id: 6
fields:
- title: Title
value:
type: 0
typeString: CustomFieldType_Text
- title: Pictures
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Description
value:
type: 0
typeString: CustomFieldType_Text
- title: Actor
value: 8
type: 5
typeString: CustomFieldType_Actor
- title: Conversant
value: 1
type: 5
typeString: CustomFieldType_Actor
- title: Menu Text
value:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: 'You, what are you waiting for? Get your crystal, and get out of my
home, out of my memory, out of our lives! '
type: 0
typeString: CustomFieldType_Text
- title: Parenthetical
value:
type: 0
typeString: CustomFieldType_Text
- title: Audio Files
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Video File
value:
type: 0
typeString: CustomFieldType_Text
- title: Sequence
value:
type: 0
typeString: CustomFieldType_Text
- title: pl
value:
type: 4
typeString: CustomFieldType_Localization
conversationID: 133
isRoot: 0
isGroup: 0
nodeColor:
delaySimStatus: 0
falseConditionAction: Block
conditionPriority: 2
outgoingLinks:
- originConversationID: 133
originDialogueID: 6
destinationConversationID: 133
destinationDialogueID: 7
isConnector: 0
priority: 2
conditionsString:
userScript:
onExecute:
m_PersistentCalls:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 233
y: 129
width: 160
height: 30
- id: 7
fields:
- title: Title
value:
type: 0
typeString: CustomFieldType_Text
- title: Pictures
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Description
value:
type: 0
typeString: CustomFieldType_Text
- title: Actor
value: 1
type: 5
typeString: CustomFieldType_Actor
- title: Conversant
value: 8
type: 5
typeString: CustomFieldType_Actor
- title: Menu Text
value:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: Thank you, Zora. I will return for you one day. This I promise.
type: 0
typeString: CustomFieldType_Text
- title: Parenthetical
value:
type: 0
typeString: CustomFieldType_Text
- title: Audio Files
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Video File
value:
type: 0
typeString: CustomFieldType_Text
- title: Sequence
value:
type: 0
typeString: CustomFieldType_Text
- title: pl
value:
type: 4
typeString: CustomFieldType_Localization
conversationID: 133
isRoot: 0
isGroup: 0
nodeColor:
delaySimStatus: 0
falseConditionAction: Block
conditionPriority: 2
outgoingLinks:
- originConversationID: 133
originDialogueID: 7
destinationConversationID: 133
destinationDialogueID: 8
isConnector: 0
priority: 2
conditionsString:
userScript:
onExecute:
m_PersistentCalls:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 237
y: 197
width: 160
height: 30
- id: 8
fields:
- title: Title
value:
type: 0
typeString: CustomFieldType_Text
- title: Pictures
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Description
value:
type: 0
typeString: CustomFieldType_Text
- title: Actor
value: 8
type: 5
typeString: CustomFieldType_Actor
- title: Conversant
value: 1
type: 5
typeString: CustomFieldType_Actor
- title: Menu Text
value:
type: 0
typeString: CustomFieldType_Text
- title: Dialogue Text
value: 'Look around us. Do you see any splendor outside? Any palaces or towers
or gardens bearing the sigil of Lady Zora the Wise?
This is
what all the promises are worth. Dreams and illusions. He promised me so
much... And the price was too high... He promised me... He promised...'
type: 0
typeString: CustomFieldType_Text
- title: Parenthetical
value:
type: 0
typeString: CustomFieldType_Text
- title: Audio Files
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Video File
value:
type: 0
typeString: CustomFieldType_Text
- title: Sequence
value:
type: 0
typeString: CustomFieldType_Text
- title: pl
value:
type: 4
typeString: CustomFieldType_Localization
conversationID: 133
isRoot: 0
isGroup: 0
nodeColor:
delaySimStatus: 0
falseConditionAction: Block
conditionPriority: 2
outgoingLinks: []
conditionsString:
userScript:
onExecute:
m_PersistentCalls:
m_Calls: []
canvasRect:
serializedVersion: 2
x: 237
y: 265
width: 160
height: 30
canvasScrollPosition: {x: 0, y: 0}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 227762e2f34f94c39886be6c601c46f6
guid: d63770b2abbfd4dac9512f8f548398b2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@@ -623,6 +623,44 @@ MonoBehaviour:
value: False
type: 2
typeString: CustomFieldType_Boolean
- id: 26
fields:
- title: Name
value: CH02WitchHouse
type: 0
typeString: CustomFieldType_Text
- title: Pictures
value: '[]'
type: 3
typeString: CustomFieldType_Files
- title: Description
value:
type: 0
typeString: CustomFieldType_Text
- title: Success Description
value:
type: 0
typeString: CustomFieldType_Text
- title: Failure Description
value:
type: 0
typeString: CustomFieldType_Text
- title: State
value: unassigned
type: 0
typeString: CustomFieldType_QuestState
- title: Is Item
value: False
type: 2
typeString: CustomFieldType_Boolean
- title: Name pl
value:
type: 4
typeString: CustomFieldType_Localization
- title: Description pl
value:
type: 4
typeString: CustomFieldType_Localization
locations: []
variables:
- id: 1

View File

@@ -59,26 +59,6 @@ MonoBehaviour:
m_valueType: 0
m_intValue: 0
m_stringValue:
--- !u!114 &-8653979122806494159
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c47e1bb9cdd9a474c8d3f5d555d7533a, type: 3}
m_Name: HeadingTextQuestContent
m_EditorClassIdentifier:
m_contentID: -1
m_useQuestTitle: 0
m_headingText:
m_text: Xasarath defeated
m_stringAsset: {fileID: 0}
m_textTable: {fileID: 0}
m_textTableFieldID: 0
m_headingLevel: 1
--- !u!114 &-8578796476092519750
MonoBehaviour:
m_ObjectHideFlags: 1
@@ -138,6 +118,33 @@ MonoBehaviour:
m_textTable: {fileID: 0}
m_textTableFieldID: 0
m_headingLevel: 1
--- !u!114 &-7841232632897984608
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9840a28297a53d449903f34dc60157bb, type: 3}
m_Name: UnityEventQuestAction
m_EditorClassIdentifier:
m_onExecute:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 0}
m_TargetAssemblyTypeName:
m_MethodName:
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName:
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &-7446036202664288738
MonoBehaviour:
m_ObjectHideFlags: 1
@@ -322,6 +329,24 @@ MonoBehaviour:
m_textTable: {fileID: 0}
m_textTableFieldID: 0
m_headingLevel: 1
--- !u!114 &-3388674572673871474
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d8dd425597ce38647ade6025cfd66c5e, type: 3}
m_Name: ActivateGameObjectQuestAction
m_EditorClassIdentifier:
m_gameObjectName:
m_text: Destination_Target_MetalGate
m_stringAsset: {fileID: 0}
m_textTable: {fileID: 0}
m_textTableFieldID: 0
m_state: 0
--- !u!114 &-2505829491228229992
MonoBehaviour:
m_ObjectHideFlags: 1
@@ -630,6 +655,7 @@ MonoBehaviour:
- m_contentList: []
- m_actionList:
- {fileID: 3367981398650340145}
- {fileID: -7841232632897984608}
m_categorizedContentList:
- m_contentList: []
- m_contentList: []
@@ -680,12 +706,15 @@ MonoBehaviour:
- m_actionList:
- {fileID: 2915134757682194737}
- {fileID: -1625373378929022548}
- {fileID: 2176576428009084007}
m_categorizedContentList:
- m_contentList: []
- m_contentList: []
- m_contentList:
- {fileID: -74462918815286381}
- m_actionList: []
- m_actionList:
- {fileID: 3522696309081964476}
- {fileID: -3388674572673871474}
m_categorizedContentList:
- m_contentList: []
- m_contentList: []
@@ -736,7 +765,6 @@ MonoBehaviour:
- {fileID: -8341222452620954764}
- m_actionList:
- {fileID: 8741718913370622239}
- {fileID: 1646647759270838919}
m_categorizedContentList:
- m_contentList: []
- m_contentList: []
@@ -836,7 +864,8 @@ MonoBehaviour:
- m_contentList: []
- m_contentList:
- {fileID: -1941475915782848472}
- m_actionList: []
- m_actionList:
- {fileID: 7751196241427541844}
m_categorizedContentList:
- m_contentList: []
- m_contentList: []
@@ -1167,7 +1196,7 @@ MonoBehaviour:
m_valueType: 0
m_intValue: 0
m_stringValue:
--- !u!114 &1646647759270838919
--- !u!114 &2176576428009084007
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
@@ -1176,12 +1205,15 @@ MonoBehaviour:
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6b99cc2a156c22e46b4fb74b06a4d1e8, type: 3}
m_Name: AlertQuestAction
m_Script: {fileID: 11500000, guid: d8dd425597ce38647ade6025cfd66c5e, type: 3}
m_Name: ActivateGameObjectQuestAction
m_EditorClassIdentifier:
m_contentList:
- {fileID: -8653979122806494159}
m_contentListSerializationProxy: []
m_gameObjectName:
m_text: Destination_Target_MetalGate
m_stringAsset: {fileID: 0}
m_textTable: {fileID: 0}
m_textTableFieldID: 0
m_state: 1
--- !u!114 &2243021536323710742
MonoBehaviour:
m_ObjectHideFlags: 1
@@ -1240,6 +1272,19 @@ MonoBehaviour:
m_contentList:
- {fileID: -6189065307398835676}
m_contentListSerializationProxy: []
--- !u!114 &3522696309081964476
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c94e8fb3b9b54114cbe8185003729c1b, type: 3}
m_Name: SceneEventQuestAction
m_EditorClassIdentifier:
m_guid:
--- !u!114 &3725813361027539405
MonoBehaviour:
m_ObjectHideFlags: 1
@@ -1359,6 +1404,24 @@ MonoBehaviour:
m_textTable: {fileID: 0}
m_textTableFieldID: 0
m_headingLevel: 1
--- !u!114 &7751196241427541844
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d8dd425597ce38647ade6025cfd66c5e, type: 3}
m_Name: ActivateGameObjectQuestAction
m_EditorClassIdentifier:
m_gameObjectName:
m_text: IllusionaryWallTrigger
m_stringAsset: {fileID: 0}
m_textTable: {fileID: 0}
m_textTableFieldID: 0
m_state: 0
--- !u!114 &8332098773891880592
MonoBehaviour:
m_ObjectHideFlags: 1

File diff suppressed because it is too large Load Diff

View File

@@ -9,189 +9,185 @@ using Sirenix.OdinInspector;
using PixelCrushers.QuestMachine;
using PixelCrushers.DialogueSystem;
using TMPro;
namespace Beyond
{
[vClassHeader("bTrigger Generic Action", false, iconName = "triggerIcon")]
public class bTriggerGenericAction : vTriggerGenericAction
[vClassHeader("bTrigger Generic Action", false, iconName = "triggerIcon")]
public class bTriggerGenericAction : vTriggerGenericAction
{
[vEditorToolbar("Conditions", order = 0)] [SerializeField]
private Condition m_questCondition;
public bool m_itemChecking;
public int m_itemToCheckId;
[vHelpBox("Disable Selected HUD OnValidate, and enable OnInvalidate. Script ActionTriggerEvent.cs")]
public bool disableHUD = true;
[vHelpBox("Changes interaction image")]
//public bool isDialogueTrigger = false;
public TriggerDescriptor.TriggerType triggerType = TriggerDescriptor.TriggerType.Generic;
public UnityEvent OnPlayerMatchTargetPosition;
[vEditorToolbar("Animation", order = 2)] [SerializeField]
public bool useFadeOnMatchingToTarget;
[SerializeField] private AnimationCurve m_fadeInCurve;
[SerializeField] private AnimationCurve m_fadeOutCurve;
[SerializeField] private float m_fadeSpeed = 2f;
[vEditorToolbar("Interaction", order = 4)] [SerializeField]
private bool m_enableInteractionLegality;
public Quest m_guilt;
private bool m_faded;
public bool Faded => m_faded;
public float animationDelay = 0f;
private TriggerDescriptor m_triggerDescriptor;
private void OnEnable()
{
[vEditorToolbar("Conditions", order = 0)] [SerializeField]
private Condition m_questCondition;
public bool m_itemChecking;
public int m_itemToCheckId;
[vHelpBox("Disable Selected HUD OnValidate, and enable OnInvalidate. Script ActionTriggerEvent.cs")]
public bool disableHUD = true;
[vHelpBox("Changes interaction image")]
public TriggerDescriptor.TriggerType triggerType = TriggerDescriptor.TriggerType.Generic;
public UnityEvent OnPlayerMatchTargetPosition;
[vEditorToolbar("Animation", order = 2)] [SerializeField]
public bool useFadeOnMatchingToTarget;
[SerializeField] private AnimationCurve m_fadeInCurve;
[SerializeField] private AnimationCurve m_fadeOutCurve;
[SerializeField] private float m_fadeSpeed = 2f;
[vEditorToolbar("Interaction", order = 4)] [SerializeField]
private bool m_enableInteractionLegality;
public Quest m_guilt;
private bool m_faded;
public bool Faded => m_faded;
public float animationDelay = 0f;
private TriggerDescriptor m_triggerDescriptor;
private void OnEnable()
if (useFadeOnMatchingToTarget)
{
if (useFadeOnMatchingToTarget)
OnPressActionInput.AddListener(ToggleFade);
OnPlayerMatchTargetPosition.AddListener(ToggleFade);
if (FadeCanvasGroup.Instance)
{
OnPressActionInput.AddListener(ToggleFade);
OnPlayerMatchTargetPosition.AddListener(ToggleFade);
if (FadeCanvasGroup.Instance)
{
FadeCanvasGroup.Instance.OnFadeInEnd.AddListener(OnFadeInEnd);
FadeCanvasGroup.Instance.OnFadeOutEnd.AddListener(OnFadeOutEnd);
}
FadeCanvasGroup.Instance.OnFadeInEnd.AddListener(OnFadeInEnd);
FadeCanvasGroup.Instance.OnFadeOutEnd.AddListener(OnFadeOutEnd);
}
}
private void OnDisable()
{
if (useFadeOnMatchingToTarget)
{
OnPressActionInput.RemoveListener(ToggleFade);
OnPlayerMatchTargetPosition.RemoveListener(ToggleFade);
if (FadeCanvasGroup.Instance)
{
FadeCanvasGroup.Instance.OnFadeInEnd.RemoveListener(OnFadeInEnd);
FadeCanvasGroup.Instance.OnFadeOutEnd.RemoveListener(OnFadeOutEnd);
}
}
}
public override IEnumerator OnPressActionDelay(GameObject obj)
{
if (!m_itemChecking)
{
yield return base.OnPressActionDelay(obj);
}
if (m_itemChecking && Player.Instance.ItemManager.ContainItem(m_itemToCheckId))
{
yield return base.OnPressActionDelay(obj);
}
if (!Player.Instance.ItemManager.ContainItem(m_itemToCheckId))
{
var item = Player.Instance.ItemManager.itemListData.items.Find(item => item.id == m_itemToCheckId);
DialogueManager.BarkString($"{item.name} Required", Player.Instance.transform);
}
}
private void OnActionTriggerEnter(GameObject gameObject)
{
if (!m_questCondition.IsTrue(null))
{
return;
}
if (disableHUD)
{
ActionTriggerEvent.ActionTriggerEnter?.Invoke(m_triggerDescriptor);
}
if (triggerType == TriggerDescriptor.TriggerType.Dialogue)
{
Player.Instance.SetDialogueIntaractableButtonImage();
}
}
private void OnActionTriggerExit(GameObject gameObject)
{
if (disableHUD)
{
ActionTriggerEvent.ActionTriggerExit?.Invoke(m_triggerDescriptor);
}
if (triggerType == TriggerDescriptor.TriggerType.Dialogue)
{
Player.Instance.ResetIntaractableButtonImage();
}
}
private void OnActionEndAnimation(GameObject gameObject)
{
// THIS SECTION WAS THE PRIMARY CAUSE OF THE DOUBLE-EXIT CALL.
// The logic below was removed because the trigger exit should only happen
// when the player physically leaves the collider, which is already
// handled by the OnInvalidate event that calls OnActionTriggerExit.
/*
if (disableHUD)
{
ActionTriggerEvent.ActionTriggerExit?.Invoke(m_triggerDescriptor);
}
if (triggerType == TriggerDescriptor.TriggerType.Dialogue)
{
Player.Instance.ResetIntaractableButtonImage();
}
*/
if (!m_enableInteractionLegality)
{
return;
}
if (m_guilt == null)
{
Debug.LogError("There is no quilt assigned to interactable game object: " + gameObject.name);
return;
}
Player.Instance.PlayerConfessionController.AddGuilt(m_guilt);
}
private void ToggleFade()
{
if (FadeCanvasGroup.Instance == null)
{
return;
}
if (!m_faded)
{
m_faded = true;
FadeCanvasGroup.Instance.FadeOut(1f / m_fadeSpeed);
return;
}
FadeCanvasGroup.Instance.FadeIn(1f / m_fadeSpeed);
}
private void OnFadeInEnd()
{
m_faded = false;
}
private void OnFadeOutEnd()
{
m_faded = true;
}
protected override void Start()
{
base.Start();
m_triggerDescriptor = new TriggerDescriptor(gameObject, triggerType);
OnValidate.AddListener(OnActionTriggerEnter);
OnInvalidate.AddListener(OnActionTriggerExit);
OnEndAnimation.AddListener(() => OnActionEndAnimation(gameObject));
}
}
}
private void OnDisable()
{
if (useFadeOnMatchingToTarget)
{
OnPressActionInput.RemoveListener(ToggleFade);
OnPlayerMatchTargetPosition.RemoveListener(ToggleFade);
if (FadeCanvasGroup.Instance)
{
FadeCanvasGroup.Instance.OnFadeInEnd.RemoveListener(OnFadeInEnd);
FadeCanvasGroup.Instance.OnFadeOutEnd.RemoveListener(OnFadeOutEnd);
}
}
}
public override IEnumerator OnPressActionDelay(GameObject obj)
{
if (!m_itemChecking)
{
yield return base.OnPressActionDelay(obj);
}
if (m_itemChecking && Player.Instance.ItemManager.ContainItem(m_itemToCheckId))
{
yield return base.OnPressActionDelay(obj);
}
if (!Player.Instance.ItemManager.ContainItem(m_itemToCheckId))
{
var item = Player.Instance.ItemManager.itemListData.items.Find(item => item.id == m_itemToCheckId);
DialogueManager.BarkString($"{item.name} Required", Player.Instance.transform);
}
}
private void OnActionTriggerEnter(GameObject gameObject)
{
if (!m_questCondition.IsTrue(null))
{
return;
}
if (disableHUD)
{
ActionTriggerEvent.ActionTriggerEnter?.Invoke(m_triggerDescriptor);
}
if (triggerType == TriggerDescriptor.TriggerType.Dialogue)
{
Player.Instance.SetDialogueIntaractableButtonImage();
}
}
private void OnActionTriggerExit(GameObject gameObject)
{
if (disableHUD)
{
ActionTriggerEvent.ActionTriggerExit?.Invoke(m_triggerDescriptor);
}
if (triggerType == TriggerDescriptor.TriggerType.Dialogue)
{
Player.Instance.ResetIntaractableButtonImage();
}
}
private void OnActionEndAnimation(GameObject gameObject)
{
if (disableHUD)
{
ActionTriggerEvent.ActionTriggerExit?.Invoke(m_triggerDescriptor);
}
if (triggerType == TriggerDescriptor.TriggerType.Dialogue)
{
Player.Instance.ResetIntaractableButtonImage();
}
if (!m_enableInteractionLegality)
{
return;
}
if (m_guilt == null)
{
Debug.LogError("There is no quilt assigned to interactable game object: " + gameObject.name);
return;
}
Player.Instance.PlayerConfessionController.AddGuilt(m_guilt);
}
private void ToggleFade()
{
if (FadeCanvasGroup.Instance == null)
{
return;
}
if (!m_faded)
{
m_faded = true;
FadeCanvasGroup.Instance.FadeOut(1f / m_fadeSpeed);
//.InvokeFade(m_fadeInCurve, m_fadeSpeed);
return;
}
FadeCanvasGroup.Instance.FadeIn(1f / m_fadeSpeed);
//FadeCanvasGroup.InvokeFade(m_fadeOutCurve, m_fadeSpeed);
}
private void OnFadeInEnd()
{
m_faded = false;
}
private void OnFadeOutEnd()
{
m_faded = true;
}
protected override void Start()
{
base.Start();
m_triggerDescriptor = new TriggerDescriptor(gameObject, triggerType);
OnValidate.AddListener(OnActionTriggerEnter);
OnInvalidate.AddListener(OnActionTriggerExit);
OnEndAnimation.AddListener(() => OnActionEndAnimation(gameObject));
}
}
}