120 lines
3.8 KiB
C#

using Assets.Scripts;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class Controls : MonoBehaviour
{
GameObject player;
GameObject fight;
GameObject worldGen;
GameObject playerCam;
UIHandler uihandler;
void Start()
{
player = GameObject.Find("Player");
fight = GameObject.Find("Fight");
worldGen = GameObject.Find("WorldGenerator");
playerCam = GameObject.Find("InformationCamera");
uihandler = GameObject.Find("UIHandler").GetComponent<UIHandler>();
}
// Update is called once per frame
void Update()
{
if (!player.GetComponent<Player>().takeDamage(0))
{
EventSystem.current.SetSelectedGameObject(null);
if (!uihandler.isPlayerInFight())
{
checkNormalControls();
}
else
{
checkFightControls();
}
}
}
private void checkNormalControls()
{
if (uihandler.canPlayerMove())
{
player.GetComponent<Player>().move();
if (Input.GetKeyDown(KeyCode.E))
{
GameObject target = playerCam.GetComponent<PlayerCamera>().interactWithObject();
if (target != null)
{
switch (target.tag.Split(':')[1])
{
case "Enemy":
fight.GetComponent<Fight>().startFight(worldGen.GetComponent<WorldGenerator>().getCurrentTile(), target, player);
break;
case "Tree":
GameObject.Find("Inventory").GetComponent<Inventory>().addItem(new Item("Wood"));
Destroy(target);
break;
case "Stone":
GameObject.Find("Inventory").GetComponent<Inventory>().addItem(new Item("Stone"));
Destroy(target);
break;
case "NPC":
target.GetComponent<NPC>().interact();
break;
case "House":
break;
}
}
}
else if (Input.GetKeyDown(KeyCode.C))
{
uihandler.switchCharactersheet();
}
else if (Input.GetKeyDown(KeyCode.Q))
{
uihandler.switchQuestLog();
}
else if (Input.GetKeyDown(KeyCode.I))
{
uihandler.switchInventory();
}
}
if (Input.GetKeyDown(KeyCode.Escape))
{
uihandler.switchPauseMenu();
}
}
private void checkFightControls()
{
if (Input.GetKeyDown(KeyCode.Alpha1) || Input.GetKeyDown(KeyCode.Keypad1))
{
fight.GetComponent<Fight>().playerAction(1);
}
else if (Input.GetKeyDown(KeyCode.Alpha2) || Input.GetKeyDown(KeyCode.Keypad2))
{
fight.GetComponent<Fight>().playerAction(2);
}
else if (Input.GetKeyDown(KeyCode.Alpha3) || Input.GetKeyDown(KeyCode.Keypad3))
{
fight.GetComponent<Fight>().playerAction(3);
}
else if (Input.GetKeyDown(KeyCode.Alpha4) || Input.GetKeyDown(KeyCode.Keypad4))
{
fight.GetComponent<Fight>().playerAction(4);
}
else if (Input.GetKeyDown(KeyCode.Alpha5) || Input.GetKeyDown(KeyCode.Keypad5))
{
fight.GetComponent<Fight>().playerAction(5);
}
else if (Input.GetKeyDown(KeyCode.Alpha6) || Input.GetKeyDown(KeyCode.Keypad6))
{
fight.GetComponent<Fight>().playerAction(6);
}
}
}