80 lines
2.5 KiB
C#
80 lines
2.5 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class JobInfoPanel : MonoBehaviour
|
|
{
|
|
[Header("Components:")]
|
|
[SerializeField] private TMP_Text title;
|
|
[SerializeField] private TMP_Text description;
|
|
[SerializeField] private TMP_Text coinReward;
|
|
[SerializeField] private TMP_Text experienceReward;
|
|
[SerializeField] private TMP_Text reputationReward;
|
|
[SerializeField] private GameObject infoPanel;
|
|
[SerializeField] private Button closeButton;
|
|
[Header("Events:")]
|
|
[SerializeField] private GameEvent onInfoPanelClosed;
|
|
|
|
[Header("Listeners:")]
|
|
[SerializeField] private GameEventListener_JobInstance onJobSelected;
|
|
[SerializeField] private GameEventListener onJobsBoardReleased;
|
|
[SerializeField] private GameEventListener_RiftPlayer onPlayerVoted;
|
|
[SerializeField] private GameEventListener onGameOptionsOpenned;
|
|
|
|
JobInstance networkJobInstance;
|
|
|
|
private void Awake()
|
|
{
|
|
onJobSelected.Response.AddListener((job) => SetupJobInfoPanel(job, true));
|
|
onJobSelected.Response.AddListener(Send_Others_OnJobSelected);
|
|
onJobsBoardReleased.Response.AddListener(() => ToggleInfoPanel(false));
|
|
onGameOptionsOpenned.Response.AddListener(() => ToggleInfoPanel(false));
|
|
/* onPlayerVoted.Response.AddListener((player) =>
|
|
{
|
|
if (player != PhotonNetwork.LocalPlayer)
|
|
ToggleInfoPanel(true);
|
|
});*/
|
|
|
|
closeButton.onClick.AddListener(() => ToggleInfoPanel(false));
|
|
}
|
|
|
|
|
|
private void SetupJobInfoPanel(JobInstance jobData, bool showPanel)
|
|
{
|
|
if (jobData.showJobTitlePrefix)
|
|
title.text = $"Job Title: {jobData.title}";
|
|
else
|
|
title.text = $"{jobData.title}";
|
|
|
|
description.text = jobData.description;
|
|
|
|
coinReward.text = jobData.coinReward.ToString();
|
|
experienceReward.text = jobData.experienceReward.ToString();
|
|
reputationReward.text = jobData.reputationReward.ToString();
|
|
|
|
if (showPanel)
|
|
ToggleInfoPanel(true);
|
|
}
|
|
|
|
public void ToggleInfoPanel(bool visible)
|
|
{
|
|
infoPanel.SetActive(visible);
|
|
if (!visible)
|
|
onInfoPanelClosed.Raise();
|
|
}
|
|
|
|
private void Send_Others_OnJobSelected(JobInstance jobInstance)
|
|
{
|
|
//if (PhotonNetwork.CurrentRoom.PlayerCount <= 1) return;
|
|
|
|
networkJobInstance = jobInstance;
|
|
|
|
string jsonJobData = JsonUtility.ToJson(networkJobInstance);
|
|
Debug.Log($"JobData: {jsonJobData}");
|
|
|
|
|
|
}
|
|
}
|