Skip to content

Commit b60769a

Browse files
committed
fix: Change how Selection Managers turns on/off outline as well as reduce some dependencies
1 parent 332c84d commit b60769a

File tree

10 files changed

+39
-24
lines changed

10 files changed

+39
-24
lines changed

Assets/Scripts/Activities/Activity1/Act1GameController.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,8 +303,16 @@ public void UpdateGameQuest()
303303
//Check if the completed levels are two
304304
public void CheckLevelsCompleted()
305305
{
306+
int passedLevels = 0;
307+
308+
for (int i = 0; i < levelsCompleted.Count; i++)
309+
{
310+
if (levelsCompleted[i])
311+
passedLevels++;
312+
}
313+
306314
// Look in the list of level completed if the two levels are completed
307-
if (levelsCompleted[0] && levelsCompleted[1])
315+
if (passedLevels >= 2)
308316
{
309317
// Call the game manager to complete the questionnaire
310318
UpdateGameQuest();
@@ -315,6 +323,8 @@ public void QuitActivityOne()
315323
{
316324
AudioManager.Instance.PlaySound(SoundType.ActivityBtnSfx);
317325
Activity.Instance.activityOne.SetActive(false);
326+
SelectionManager.instance.isInteracting = false;
327+
SelectionManager.instance.canHighlight = true;
318328
EnableWorldMap();
319329
}
320330

Assets/Scripts/Activities/Activity2/Act2GameController.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,9 @@ public void CheckLevelsCompleted()
266266
public void QuitActivityTwo()
267267
{
268268
AudioManager.Instance.PlaySound(SoundType.ActivityBtnSfx);
269-
270269
Activity.Instance.activityThree.SetActive(false);
270+
SelectionManager.instance.isInteracting = false;
271+
SelectionManager.instance.canHighlight = true;
271272
EnableWorldMap();
272273
}
273274

Assets/Scripts/Activities/Activity3/Act3GameController.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ public void UpdateGameQuest()
5757
public void QuitActivityThree()
5858
{
5959
AudioManager.Instance.PlaySound(SoundType.ActivityBtnSfx);
60-
Activity.Instance.activityTwo.SetActive(false);
60+
Activity.Instance.activityTwo.SetActive(false);
61+
SelectionManager.instance.isInteracting = false;
62+
SelectionManager.instance.canHighlight = true;
6163
EnableWorldMap();
6264
}
6365

Assets/Scripts/Dialogue/DialogueManager.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ void Update()
7878
public void StartConversation(TextAsset inkJSON)
7979
{
8080
SelectionManager.instance.isInteracting = true;
81+
SelectionManager.instance.canHighlight = false;
8182
DisableObjects.Instance.ToggleSelectionCursor();
8283
DisableObjects.Instance.ToggleTooltip();
8384
DisableObjects.Instance.disableCharacterController();
@@ -103,6 +104,7 @@ private void EndDialogue()
103104
isTalking = false;
104105
dialogueUI.dialogueUI.SetActive(false);
105106
SelectionManager.instance.isInteracting = false;
107+
SelectionManager.instance.canHighlight = true;
106108
EventManager.Photograph.OnActiveCamera(true);
107109
DisableObjects.Instance.ToggleSelectionCursor();
108110
DisableObjects.Instance.ToggleTooltip();

Assets/Scripts/Interactable Objects/Activity/Activity.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ public override void Interact()
4242
DisableObjects.Instance.disableCharacterController();
4343
DisableObjects.Instance.disableCameras();
4444
DisableObjects.Instance.disableSwitchCamera();
45+
SelectionManager.instance.canHighlight = false;
46+
SelectionManager.instance.isInteracting = true;
4547

4648
if(itemName == "Activity1"){
4749
activityOne.SetActive(true);

Assets/Scripts/Interactable Objects/Characters/Character.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,7 @@ public void Update()
4444

4545
public override void Interact()
4646
{
47-
48-
if (!DialogueManager.instance.isTalking)
49-
{
50-
DialogueManager.instance.StartConversation(inkJSON);
51-
52-
//CameraUtilityManager.Instance.SetCameraOnCharacter(transform);
53-
}
54-
47+
DialogueManager.instance.StartConversation(inkJSON);
5548
}
5649

5750
protected override void handleCollision(Collider other)

Assets/Scripts/Interactable Objects/Letter/Letter.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ public class Letter : InteractableObject
3434

3535
public override void Interact()
3636
{
37-
base.Interact(); // Do not remove - child calls parent method
3837

3938
DisableObjects.Instance.disableSwitchCamera();
4039
DisableObjects.Instance.disableCameras();
@@ -44,13 +43,17 @@ public override void Interact()
4443

4544
if (toggle)
4645
{
46+
SelectionManager.instance.canHighlight = false;
47+
SelectionManager.instance.oneTimeInteraction = true;
4748
turnOn();
4849
EventManager.Photograph.OnActiveCamera(false);
4950
EventManager.QuestUI.OnLockQuestUI();
5051
EventManager.Minimap.OnLockMiniMap();
5152
}
5253
else
5354
{
55+
SelectionManager.instance.canHighlight = true;
56+
SelectionManager.instance.oneTimeInteraction = false;
5457
turnOff();
5558
EventManager.Photograph.OnActiveCamera(true);
5659
EventManager.QuestUI.OnUnlockQuestUI();

Assets/Scripts/Interactable Objects/TV/TV.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ public class TV : InteractableObject
4747
// Interact with the TV
4848
public override void Interact()
4949
{
50-
base.Interact(); // Do not remove - child calls parent method
51-
5250
disableObjects.TogglePlayer();
5351
disableObjects.ToggleSelectionCursor();
5452

@@ -65,13 +63,17 @@ public override void Interact()
6563

6664
if (isOn)
6765
{
66+
SelectionManager.instance.oneTimeInteraction = true;
67+
SelectionManager.instance.canHighlight = false;
6868
EventManager.Minimap.OnLockMiniMap.Invoke();
6969
EventManager.Photograph.OnActiveCamera(false);
7070
AudioManager.Instance.PlaySound(SoundType.TVOn);
7171
ActiveTV();
7272
}
7373
else
7474
{
75+
SelectionManager.instance.oneTimeInteraction = false;
76+
SelectionManager.instance.canHighlight = true;
7577
EventManager.Minimap.OnUnlockMiniMap.Invoke();
7678
EventManager.Photograph.OnActiveCamera(true);
7779
AudioManager.Instance.PlaySound(SoundType.TvOff);

Assets/Scripts/Interaction System/SelectionManager.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ public class SelectionManager : MonoBehaviour
1212
public static SelectionManager instance;
1313
public bool isInteracting;
1414
public bool onTarget;
15+
public bool canHighlight;
16+
public bool oneTimeInteraction;
1517

1618
[SerializeField]
1719
private GameObject textBox;
@@ -36,6 +38,7 @@ private void Awake()
3638
private void Start()
3739
{
3840
onTarget = false;
41+
canHighlight = true;
3942
interaction_text = textBox.GetComponentInChildren<Image>().GetComponentInChildren<TextMeshProUGUI>();
4043
}
4144

@@ -58,23 +61,21 @@ void Update()
5861

5962
interactable = selectionTransform.GetComponent<InteractableObject>();
6063

61-
if (interactable != null && interactable.playerInRange && !WallAlertUI.state)
64+
if (interactable != null && (interactable.playerInRange || oneTimeInteraction) && !isInteracting)
6265
{
6366
if (interactable != lastInteractable)
6467
{
6568
lastInteractable = interactable;
6669
}
6770

6871

69-
interactable.GetComponent<Outline>().enabled = !isInteracting;
72+
interactable.GetComponent<Outline>().enabled = canHighlight;
7073
SetText(interactable.GetSelectionPrompt());
7174

7275
if (Input.GetKeyDown(KeyCode.E))
7376
{
74-
if (!DialogueManager.instance.isTalking)
75-
{
76-
interactable.Interact();
77-
}
77+
Debug.Log("Interacting with " + interactable.name);
78+
interactable.Interact();
7879
}
7980
}
8081
else

Assets/Scripts/UI/Alert/Wall/WallAlertUI.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ public class WallAlertUI : MonoBehaviour
88
{
99
public GameObject alertWall;
1010
private TextMeshProUGUI alertWallText;
11-
public static bool state;
1211

1312
void OnEnable()
1413
{
@@ -28,9 +27,9 @@ public void Start()
2827

2928
public void setActiveAlertWall(int module, bool state)
3029
{
31-
WallAlertUI.state = state;
32-
Debug.Log("Current wall state is " + WallAlertUI.state);
33-
alertWall.SetActive(WallAlertUI.state);
30+
SelectionManager.instance.isInteracting = state;
31+
Debug.Log("Current wall state is " + state);
32+
alertWall.SetActive(state);
3433
alertWallText.text = "No puedes pasar sin antes completar todas las tareas del módulo " + module;
3534
}
3635
}

0 commit comments

Comments
 (0)