Files
test/Assets/PerfectWorld/Scripts/UI/Dialogs/CDlgSkillAction.cs
T
2026-03-18 13:40:27 +07:00

109 lines
3.4 KiB
C#

using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
using BrewMonster.Scripts.Skills;
using BrewMonster.UI;
using System;
using UnityEngine;
using UnityEngine.UI;
namespace BrewMonster
{
public class CDlgSkillAction : AUIDialog
{
[SerializeField] private Button uiSkillButton;
[SerializeField] private Button uiAssignSkillButton;
[SerializeField] private SkillUI skillUI;
[SerializeField] private AssignSkill assignSkill;
bool m_bOpenAction;
bool m_bReceivedNCPGreeting; // ǷյNPCGreeting
public override void Awake()
{
base.Awake();
uiSkillButton.onClick.RemoveAllListeners();
uiAssignSkillButton.onClick.RemoveAllListeners();
EventBus.Subscribe<OpenSkillUIEvent>(OnOpenSkillUIEvent);
EventBus.Subscribe<OpenAssignSkillUIEvent>(OnOpenAssignSkillUIEvent);
uiSkillButton.onClick.AddListener(OnSkillButtonClicked);
uiAssignSkillButton.onClick.AddListener(OnAssignSkillButtonClicked);
}
public void OnDestroy()
{
EventBus.Unsubscribe<OpenSkillUIEvent>(OnOpenSkillUIEvent);
EventBus.Unsubscribe<OpenAssignSkillUIEvent>(OnOpenAssignSkillUIEvent);
}
private void OnOpenAssignSkillUIEvent(OpenAssignSkillUIEvent @event)
{
TryOpenAssignSkillDialog(false);
}
private void OnOpenSkillUIEvent(OpenSkillUIEvent @event)
{
TryOpenSkillDialog(false);
}
private void OnSkillButtonClicked()
{
TryOpenSkillDialog(false);
}
private void OnAssignSkillButtonClicked()
{
TryOpenAssignSkillDialog(false);
}
public void TryOpenSkillDialog(bool bAction)
{
if(skillUI == null)
{
return;
}
var boolll = skillUI.gameObject.activeInHierarchy;
if (boolll)
{
skillUI.gameObject.SetActive(!boolll);
return;
}
skillUI.gameObject.SetActive(!boolll);
if (skillUI.gameObject.activeInHierarchy)
if (!GetHostPlayer().IsTalkingWithNPC())
{
m_bOpenAction = bAction;
CECHostSkillModel.Instance.SendHelloToSkillLearnNPC();
SetReceivedNPCGreeting(false);
}
}
public void TryOpenAssignSkillDialog(bool bAction)
{
if(assignSkill == null)
{
return;
}
var boolll = assignSkill.gameObject.activeInHierarchy;
if (boolll)
{
assignSkill.gameObject.SetActive(!boolll);
return;
}
assignSkill.gameObject.SetActive(!boolll);
if (assignSkill.gameObject.activeInHierarchy)
if (!GetHostPlayer().IsTalkingWithNPC())
{
m_bOpenAction = bAction;
CECHostSkillModel.Instance.SendHelloToSkillLearnNPC();
SetReceivedNPCGreeting(false);
}
}
public void SetReceivedNPCGreeting(bool bReceived)
{
m_bReceivedNCPGreeting = bReceived;
}
public bool IsReceivedNPCGreeting()
{
return m_bReceivedNCPGreeting;
}
}
}