Newer
Older
TheVengeance-Project-IADE-Unity2D / Assets / Scripts / UI / Map / PlayerTravel.cs
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. public class PlayerTravel : MonoBehaviour
  6. {
  7. public GameObject city1Panel, city2Panel, mapPanel, noGold;
  8. public Text goldText;
  9. public Toggle city1Toggle, city2Toggle;
  10. public Button city1TravelButton, city2TravelButton;
  11. public float showMessageCoolDownTimer = 2f;
  12. private TravelNPC travelNpcScript;
  13. private TravelNPC2 travelNpcScript2;
  14. private PlayerGold playerGold;
  15. private Transform playerPos, TravelNPC1Pos, TravelNPC2Pos;
  16. private int travelCost;
  17. private float showMessageTimer = 0;
  18. // Start is called before the first frame update
  19. void Start()
  20. {
  21. travelNpcScript = FindObjectOfType<TravelNPC>();
  22. travelNpcScript2 = FindObjectOfType<TravelNPC2>();
  23. playerGold = FindObjectOfType<PlayerGold>();
  24. TravelNPC1Pos = GameObject.FindGameObjectWithTag("Travel NPC").GetComponent<Transform>();
  25. TravelNPC2Pos = GameObject.FindGameObjectWithTag("Travel NPC 2").GetComponent<Transform>();
  26. playerPos = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
  27. travelCost = 20;
  28. }
  29. // Update is called once per frame
  30. void Update()
  31. {
  32. goldText.text = "" + playerGold.gold;
  33. city2TravelButton.onClick.AddListener(PlayerTravelToCity2);
  34. city1TravelButton.onClick.AddListener(PlayerTravelToCity1);
  35. MessageTimer();
  36. }
  37. private void PlayerTravelToCity1()
  38. {
  39. if (playerGold.gold >= travelCost && travelNpcScript2.travelCity2Selected == true)
  40. {
  41. playerPos.position = new Vector2(TravelNPC1Pos.position.x + 2, TravelNPC1Pos.position.y);
  42. playerGold.gold -= travelCost;
  43. travelNpcScript2.travelCity2Selected = false;
  44. travelNpcScript2.accepted = false;
  45. city1Toggle.isOn = false;
  46. city2Toggle.isOn = false;
  47. city1Panel.gameObject.SetActive(false);
  48. city2Panel.gameObject.SetActive(false);
  49. mapPanel.gameObject.SetActive(false);
  50. }
  51. else if (playerGold.gold < travelCost && showMessageTimer > 0)
  52. {
  53. noGold.gameObject.SetActive(true);
  54. }
  55. showMessageTimer = showMessageCoolDownTimer;
  56. }
  57. private void PlayerTravelToCity2()
  58. {
  59. if (playerGold.gold >= travelCost && travelNpcScript.travelCity1Selected == true)
  60. {
  61. playerPos.position = new Vector2(TravelNPC2Pos.position.x + 2, TravelNPC2Pos.position.y);
  62. playerGold.gold -= travelCost;
  63. travelNpcScript.travelCity1Selected = false;
  64. travelNpcScript.accepted = false;
  65. city1Toggle.isOn = false;
  66. city2Toggle.isOn = false;
  67. city1Panel.gameObject.SetActive(false);
  68. city2Panel.gameObject.SetActive(false);
  69. mapPanel.gameObject.SetActive(false);
  70. }
  71. else if (playerGold.gold < travelCost && showMessageTimer > 0)
  72. {
  73. noGold.gameObject.SetActive(true);
  74. }
  75. showMessageTimer = showMessageCoolDownTimer;
  76. }
  77. private void MessageTimer()
  78. {
  79. if (showMessageTimer <= 0)
  80. {
  81. noGold.gameObject.SetActive(false);
  82. }
  83. else
  84. {
  85. showMessageTimer -= Time.deltaTime;
  86. }
  87. }
  88. }