added tooltips
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using Assets.Scripts.Actions;
|
||||
using Assets.Scripts.Actions.Interfaces;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using TMPro;
|
||||
@@ -7,29 +7,34 @@ using UnityEngine.UI;
|
||||
|
||||
public class ConversationController : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
public TextMeshProUGUI _title;
|
||||
[SerializeField]
|
||||
public Button _choiceButton;
|
||||
[SerializeField]
|
||||
private Button _closeBtn;
|
||||
|
||||
[SerializeField]
|
||||
PlayerManager _playerManager;
|
||||
[SerializeField] public TextMeshProUGUI _title;
|
||||
[SerializeField] public Button _choiceButton;
|
||||
[SerializeField] private Button _btnApply;
|
||||
[SerializeField] private Button _btnClose;
|
||||
[SerializeField] PlayerManager _playerManager;
|
||||
|
||||
public ConversationChangeEvent conversationChangeEvent;
|
||||
private List<ChoiceController> choiceControllers = new();
|
||||
|
||||
private IPlayerAction _selectedAction = null;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Hide();
|
||||
}
|
||||
|
||||
public void Change(string title, Dictionary<string, BaseAction> options)
|
||||
public void Change(string title, List<IPlayerAction> options)
|
||||
{
|
||||
_closeBtn.onClick.AddListener(() =>
|
||||
_btnApply.interactable = false;
|
||||
|
||||
_btnClose.onClick.AddListener(() =>
|
||||
{
|
||||
Hide();
|
||||
});
|
||||
|
||||
_btnApply.onClick.AddListener(() =>
|
||||
{
|
||||
Hide();
|
||||
ApplyActionOnPlayer(_selectedAction);
|
||||
});
|
||||
|
||||
_playerManager.allowMovement = false;
|
||||
@@ -40,31 +45,30 @@ public class ConversationController : MonoBehaviour
|
||||
for (var count = 0; count < options.Count; count++)
|
||||
{
|
||||
ChoiceController c = ChoiceController.AddChoiceButton(_choiceButton, options.ElementAt(count), count);
|
||||
c.conversationChangeEvent.AddListener(ApplyActionOnPlayer);
|
||||
c.conversationChangeEvent.AddListener(SelectAction);
|
||||
choiceControllers.Add(c);
|
||||
}
|
||||
|
||||
StopAllCoroutines();
|
||||
|
||||
|
||||
Time.timeScale = 0;
|
||||
_choiceButton.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
private void ApplyActionOnPlayer(BaseAction action)
|
||||
private void SelectAction(IPlayerAction action)
|
||||
{
|
||||
if (!_playerManager.TryBuyAction(action))
|
||||
_selectedAction = action;
|
||||
if (action is ISellable)
|
||||
{
|
||||
YesNoDialogUI.Instance.ShowQuestion("not enouth money",
|
||||
() =>
|
||||
{
|
||||
},
|
||||
() =>
|
||||
{
|
||||
//do nothing
|
||||
});
|
||||
_btnApply.interactable = _playerManager.PlayerStats[GameManager.StatsId.Money].Value >= (action as ISellable).Price;
|
||||
}
|
||||
}
|
||||
|
||||
private void ApplyActionOnPlayer(IPlayerAction action)
|
||||
{
|
||||
if (action is ISellable)
|
||||
_playerManager.BuyAction(action);
|
||||
}
|
||||
private void RemoveChoices()
|
||||
{
|
||||
foreach (ChoiceController c in choiceControllers)
|
||||
|
||||
Reference in New Issue
Block a user