-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLakeController.cs
136 lines (119 loc) · 4.08 KB
/
LakeController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
//using UnityEditor.PackageManager;
using UnityEngine;
public class RectangleController : MonoBehaviour
{
private GameObject playerCircle;
public float detectionRange = 5f;
public KeyCode interactKey = KeyCode.E;
private SpriteRenderer spriteRenderer;
public bool isInRange = false;
public bool IsAcid = true;
public PlayerController pc;
public Sprite Acid;
public Sprite Water;
public ParticleSystem AcidDefault;
public ParticleSystem ChangeToAcid;
public ParticleSystem ChangeToWater;
public GameObject AcidCollider;
public GameObject WaterCollider;
void Start()
{
pc = FindObjectOfType<PlayerController>();
spriteRenderer = GetComponent<SpriteRenderer>();
spriteRenderer.sprite = Acid; // Initial color of the rectangle
if (IsAcid)
{
FindObjectOfType<AudioManager>().Play("Bubble");
AcidDefault.Play();
ChangeToAcid.Play();
spriteRenderer.sprite = Acid; // Change color to green
IsAcid = true;
WaterCollider.gameObject.SetActive(false);
AcidCollider.gameObject.SetActive(true);
}
else
{
FindObjectOfType<AudioManager>().Play("Bubble");
AcidDefault.Stop();
ChangeToWater.Play();
spriteRenderer.sprite = Water; // Change color back to blue
IsAcid = false;
WaterCollider.gameObject.SetActive(true);
AcidCollider.gameObject.SetActive(false);
}
}
void Update()
{
if (isInRange && Input.GetKeyDown(interactKey) && pc.ActiveHuman.gameObject.GetComponent<scientist>() != null)
{
ChangeColor();
}
if (pc.GhostMode)
{
playerCircle = pc.Ghost;
}
else if (!pc.GhostMode)
{
playerCircle = pc.ActiveHuman;
}
/*
if(transform.GetChild(0).GetComponent<LakeKiller>().HumanIsInside)
{
this.gameObject.GetComponent<Renderer>().material = FindObjectOfType<MySceneManager>().DefaultMat;
}
*/
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject == playerCircle)
{
if (other.GetComponent<scientist>() != null) // Check if the colliding object has a Scientist script
{
isInRange = true;
this.gameObject.GetComponent<Renderer>().material = FindObjectOfType<MySceneManager>().HighlightedMat;
}
/*
if (spriteRenderer.sprite == Acid && (other.CompareTag("Human"))||other.CompareTag("Ghost")) // Check if the colliding object is a player with the "Player" tag
{
//FindObjectOfType<LevelManager>().LoseThisLevel("Lmao Skill issue");
Debug.Log("Game Over"); // Display game over message in console
}
*/
}
}
void OnTriggerExit2D(Collider2D other)
{
if (other.gameObject == playerCircle)
{
if (other.GetComponent<scientist>() != null) // Check if the colliding object has a Scientist script
{
isInRange = false;
this.gameObject.GetComponent<Renderer>().material = FindObjectOfType<MySceneManager>().DefaultMat;
}
}
}
void ChangeColor()
{
FindObjectOfType<AudioManager>().Play("Bubble");
if (IsAcid)
{
// Go to Water
AcidDefault.Stop();
ChangeToWater.Play();
spriteRenderer.sprite = Water; // Change color back to blue
IsAcid = false;
WaterCollider.gameObject.SetActive(true);
AcidCollider.gameObject.SetActive(false);
}
else
{
// Go To Acid
AcidDefault.Play();
ChangeToAcid.Play();
spriteRenderer.sprite = Acid; // Change color to green
IsAcid = true;
WaterCollider.gameObject.SetActive(false);
AcidCollider.gameObject.SetActive(true);
}
}
}