Newer
Older
TheVengeance-Project-IADE-Unity2D / Assets / Scripts / UI / Map / PlayerTravel.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PlayerTravel : MonoBehaviour
{
    public GameObject city1Panel, city2Panel, mapPanel, noGold;

    public Text goldText;

    public Toggle city1Toggle, city2Toggle;
    public Button city1TravelButton, city2TravelButton;

    public float showMessageCoolDownTimer = 2f;

    private TravelNPC travelNpcScript;
    private TravelNPC2 travelNpcScript2;
    private PlayerGold playerGold;

    private Transform playerPos, TravelNPC1Pos, TravelNPC2Pos;

    private int travelCost;

    private float showMessageTimer = 0;

    // Start is called before the first frame update
    void Start()
    {
        travelNpcScript = FindObjectOfType<TravelNPC>();
        travelNpcScript2 = FindObjectOfType<TravelNPC2>();
        playerGold = FindObjectOfType<PlayerGold>();
        TravelNPC1Pos = GameObject.FindGameObjectWithTag("Travel NPC").GetComponent<Transform>();
        TravelNPC2Pos = GameObject.FindGameObjectWithTag("Travel NPC 2").GetComponent<Transform>();
        playerPos = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();

        travelCost = 20;
    }

    // Update is called once per frame
    void Update()
    {
        goldText.text = "" + playerGold.gold;

        city2TravelButton.onClick.AddListener(PlayerTravelToCity2);
        city1TravelButton.onClick.AddListener(PlayerTravelToCity1);
        MessageTimer();
    }

    private void PlayerTravelToCity1()
    {
        if (playerGold.gold >= travelCost && travelNpcScript2.travelCity2Selected == true)
        {
            playerPos.position = new Vector2(TravelNPC1Pos.position.x + 2, TravelNPC1Pos.position.y);
            playerGold.gold -= travelCost;

            travelNpcScript2.travelCity2Selected = false;
            travelNpcScript2.accepted = false;
            city1Toggle.isOn = false;
            city2Toggle.isOn = false;

            city1Panel.gameObject.SetActive(false);
            city2Panel.gameObject.SetActive(false);
            mapPanel.gameObject.SetActive(false);
        }

        else if (playerGold.gold < travelCost && showMessageTimer > 0)
        {
            noGold.gameObject.SetActive(true);
        }

        showMessageTimer = showMessageCoolDownTimer;
    }

    private void PlayerTravelToCity2()
    {
        if (playerGold.gold >= travelCost && travelNpcScript.travelCity1Selected == true)
        {
            playerPos.position = new Vector2(TravelNPC2Pos.position.x + 2, TravelNPC2Pos.position.y);
            playerGold.gold -= travelCost;

            travelNpcScript.travelCity1Selected = false;
            travelNpcScript.accepted = false;
            city1Toggle.isOn = false;
            city2Toggle.isOn = false;

            city1Panel.gameObject.SetActive(false);
            city2Panel.gameObject.SetActive(false);
            mapPanel.gameObject.SetActive(false);
        }

        else if (playerGold.gold < travelCost && showMessageTimer > 0)
        {
            noGold.gameObject.SetActive(true);
        }

        showMessageTimer = showMessageCoolDownTimer;
    }

    private void MessageTimer()
    {
        if (showMessageTimer <= 0)
        {
            noGold.gameObject.SetActive(false);
        }
        else
        {
            showMessageTimer -= Time.deltaTime;
        }
    }

}