using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class CharacterMovement : MonoBehaviour {
|
|
|
|
public float Speed;
|
|
GameObject localPlayer;
|
|
public List<GameObject> Players = new List<GameObject>();
|
|
public List<bool> Nearby = new List<bool>();
|
|
|
|
public float DistanceToWin;
|
|
|
|
Camera cam;
|
|
private void Start()
|
|
{
|
|
localPlayer = Multiplayer.PlayersManager.Instance.LocalPlayer;
|
|
Players.Add(localPlayer);
|
|
foreach (GameObject curPlayer in Multiplayer.PlayersManager.Instance.RemotePlayers.Values)
|
|
{
|
|
Players.Add(curPlayer);
|
|
}
|
|
cam = localPlayer.GetComponentInChildren<Camera>();
|
|
}
|
|
|
|
|
|
//Public movement functions :)
|
|
public void MoveLeft()
|
|
{
|
|
localPlayer.GetComponent<Rigidbody>().AddForce(new Vector3(-Speed, 0.0f, 0.0f));
|
|
}
|
|
|
|
public void MoveRight()
|
|
{
|
|
localPlayer.GetComponent<Rigidbody>().AddForce(new Vector3(Speed, 0.0f, 0.0f));
|
|
}
|
|
|
|
public void MoveUp()
|
|
{
|
|
localPlayer.GetComponent<Rigidbody>().AddForce(new Vector3(0.0f, 0.0f, Speed));
|
|
}
|
|
|
|
public void MoveDown()
|
|
{
|
|
localPlayer.GetComponent<Rigidbody>().AddForce(new Vector3(0.0f, 0.0f, -Speed));
|
|
}
|
|
|
|
public void mouseClick()
|
|
{
|
|
Vector3 screenMouse = Input.mousePosition;
|
|
Vector3 mousePos = cam.ScreenToWorldPoint(screenMouse);
|
|
Vector3 moveVec = new Vector3(mousePos.x, 0.0f, mousePos.z) * Speed;
|
|
|
|
localPlayer.GetComponent<Rigidbody>().AddForce(moveVec);
|
|
}
|
|
|
|
public bool CheckNearby()
|
|
{
|
|
for (int i = 0; i < Players.Count; i++)
|
|
{
|
|
if ((localPlayer.transform.position - Players[i].transform.position).magnitude < DistanceToWin)
|
|
{
|
|
Greet();
|
|
}
|
|
else
|
|
{
|
|
Player playerScript = Players[i].GetComponent<Player>();
|
|
foreach (GameObject dummy in playerScript.dummies)
|
|
{
|
|
if ((localPlayer.transform.position - dummy.transform.position).magnitude < DistanceToWin)
|
|
{
|
|
Greet();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return CheckWin();
|
|
}
|
|
|
|
bool CheckWin()
|
|
{
|
|
for (int i = 0; i < Nearby.Count; i++)
|
|
{
|
|
if (Nearby[i] == false)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public void Greet()
|
|
{
|
|
//Play audio
|
|
//Trigger animation
|
|
}
|
|
}
|