staging into master #20

Merged
helar merged 21 commits from staging into master 2022-03-28 14:44:02 +00:00
5 changed files with 4851 additions and 10 deletions
Showing only changes of commit 06fde8ab2e - Show all commits

File diff suppressed because it is too large Load Diff

View File

@ -13,6 +13,16 @@ public class EssenceNodeController : MonoBehaviour
private bool followPlayer = false;
private Transform player;
private float timer;
private Material nodeMaterial;
private Coroutine decayCo;
private void Awake()
{
nodeMaterial = GetComponent<Renderer>().material;
}
public void Touched()
{
if (!isTouched)
@ -20,6 +30,7 @@ public class EssenceNodeController : MonoBehaviour
GetComponent<Renderer>().material.color = Color.cyan;
chime.Play();
isTouched = true;
StopCoroutine(decayCo);
}
}
@ -27,7 +38,7 @@ public class EssenceNodeController : MonoBehaviour
{
followPlayer = true;
player = GameObject.FindGameObjectWithTag("MainCamera").transform;
StartCoroutine(Despawn());
StartCoroutine(Collect());
}
@ -36,16 +47,33 @@ public class EssenceNodeController : MonoBehaviour
chime.pitch = value;
}
public void SetTimer(float seconds)
{
timer = seconds;
decayCo = StartCoroutine(Decay());
}
IEnumerator Despawn()
IEnumerator Collect()
{
yield return new WaitForSeconds(2f);
//TODO: Update value in player inventory
Destroy(gameObject);
}
IEnumerator Decay()
{
yield return new WaitForSeconds(timer);
Destroy(gameObject);
}
private void Update()
{
if (!isTouched)
{
//A way to either linearly reduce the alpha value of color or fade the color to gray (must react to changing timer values)
}
if (followPlayer)
{
transform.position = Vector3.Lerp(transform.position, new Vector3(player.position.x,player.position.y - 0.5f, player.position.z), Time.deltaTime);

View File

@ -9,7 +9,7 @@ public class WellController : MonoBehaviour
private List<GameObject> nodes = new List<GameObject>();
public float spawnDelay;
//public float despawnTime;
public float despawnTime;
private Transform player;
@ -39,6 +39,7 @@ public class WellController : MonoBehaviour
{
if(i == numberOfNodes)
{
yield return new WaitForSeconds((despawnTime - spawnDelay) * 2); //Wait for all of the nodes to despawn
foreach(GameObject node in nodes)
{
node.GetComponent<EssenceNodeController>().FollowPlayer();
@ -49,18 +50,15 @@ public class WellController : MonoBehaviour
}
GameObject tempNode = Instantiate(node, nodeSpawn, Quaternion.identity);
tempNode.GetComponent<EssenceNodeController>().SetTimer(2f);
tempNode.GetComponent<AudioSource>().pitch = pitch;
nodeSpawn = nodeSpawn + right * rightDistance + Random.Range(minDown, maxUp) * up;
yield return new WaitForSeconds(spawnDelay);
StartCoroutine(SpawnNode(nodeSpawn, pitch, i + 1));
yield return new WaitForSeconds(despawnTime - spawnDelay);
if (tempNode.GetComponent<EssenceNodeController>().isTouched)
{
nodes.Add(tempNode);
StartCoroutine(SpawnNode(nodeSpawn, pitch + 0.1f, i + 1));
}
else
{
Destroy(tempNode);
StartCoroutine(SpawnNode(nodeSpawn, pitch, i + 1));
}
}

View File

@ -152,6 +152,7 @@ MonoBehaviour:
node: {fileID: 3467985268477833302, guid: 1e00d72d45b494a4ea598ff34d46a589, type: 3}
numberOfNodes: 5
spawnDelay: 1
despawnTime: 2
rightDistance: 0.1
maxUp: 0.2
minDown: -0.2

View File

@ -157,6 +157,7 @@ PlayerSettings:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
metroInputSource: 0
wsaTransparentSwapchain: 0
m_HolographicPauseOnTrackingLoss: 1