Mediepals/Assets/Scripts/Justa/JustaTrigger.cs
Gerard Gascón 102013b228 init
2025-04-24 14:30:07 +02:00

115 lines
3.9 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class JustaTrigger : MonoBehaviour
{
[SerializeField] JustaPlayerController player;
JustaTargetComboObjects targetCollisioning = null;
[HideInInspector] public bool paused = true;
// Update is called once per frame
void Update()
{
if (!paused)
{
if (Input.anyKeyDown)
{
if (!Input.GetKeyDown(KeyCode.Escape))
{
AudioManager.instance.PlayOneShot("SFX_caballoBufido" + UnityEngine.Random.Range(1, 3), true);
if (targetCollisioning == null)
{
LoosePoints();
}
else
{
JustaTargetComboObjects.KeyType key = targetCollisioning.key;
switch (key)
{
case JustaTargetComboObjects.KeyType.W:
if (Input.GetKeyDown(KeyCode.W))
{
WinPoints(this.transform.position, targetCollisioning.gameObject.transform.position);
}
else
{
LoosePoints();
}
break;
case JustaTargetComboObjects.KeyType.A:
if (Input.GetKeyDown(KeyCode.A))
{
WinPoints(this.transform.position, targetCollisioning.gameObject.transform.position);
}
else
{
LoosePoints();
}
break;
case JustaTargetComboObjects.KeyType.S:
if (Input.GetKeyDown(KeyCode.S))
{
WinPoints(this.transform.position, targetCollisioning.gameObject.transform.position);
}
else
{
LoosePoints();
}
break;
case JustaTargetComboObjects.KeyType.D:
if (Input.GetKeyDown(KeyCode.D))
{
WinPoints(this.transform.position, targetCollisioning.gameObject.transform.position);
}
else
{
LoosePoints();
}
break;
}
}
}
}
}
}
private void LoosePoints()
{
player.Mistake();
}
private void WinPoints(Vector3 triggerPos, Vector3 targetPos)
{
float distance = Vector3.Distance(triggerPos, targetPos);
player.WinPoints(distance);
}
private void OnTriggerStay(Collider other)
{
if (other.CompareTag("TargetJusta"))
{
if (targetCollisioning == null)
{
targetCollisioning = other.GetComponent<JustaTargetComboObjects>();
}
}
}
private void OnTriggerExit(Collider other)
{
if (other.CompareTag("TargetJusta"))
{
if (targetCollisioning != null)
{
targetCollisioning = null;
}
}
}
}