Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard/GatheringChatInterruptOrLeave.cs
gamer147 824309ec44 feat(battle-engine): close the AI-simulation subsystem (verbatim)
Copied the 89 uncopied AI*SimulationUtility/extension files defining the
AIVirtualCard/AIVirtualField extension methods; the compile loop then auto-closed
the revealed type deps (~3049 files total, drift-clean). 10.0k -> 62 errors.
2026-06-05 20:30:59 -04:00

116 lines
3.7 KiB
C#

using System;
using UnityEngine;
namespace Wizard;
public class GatheringChatInterruptOrLeave : MonoBehaviour, IChatActionUI
{
[SerializeField]
private UIButton _button;
[SerializeField]
private UILabel _label;
private bool _isOwner;
private ChatConnectController _chatConnectController;
private const string BUTTON_SPRITE_NAME_DEFAULT_OFF = "btn_common_01_s_off";
private const string BUTTON_SPRITE_NAME_DEFAULT_ON = "btn_common_01_s_on";
private const string BUTTON_SPRITE_NAME_RED_OFF = "btn_common_04_s_off";
private const string BUTTON_SPRITE_NAME_RED_ON = "btn_common_04_s_on";
public void Init(IChatSettings chatSettings, ChatConnectController chatConnectController, ChatLogUI chatLogUI, Action actionAddNewChatLogAfterSendChat)
{
_chatConnectController = chatConnectController;
GatheringChatSettings gatheringChatSettings = chatSettings as GatheringChatSettings;
_isOwner = gatheringChatSettings.GatheringInfo.Role == GatheringRule.eRole.OWNER;
_button.onClick.Clear();
if (_isOwner)
{
_label.text = Data.SystemText.Get("Gathering_Chat_0011");
_button.onClick.Add(new EventDelegate(OnClickInterrupt));
_button.normalSprite = "btn_common_04_s_off";
_button.pressedSprite = "btn_common_04_s_on";
}
else
{
_label.text = Data.SystemText.Get("Gathering_Chat_0015");
_button.onClick.Add(new EventDelegate(OnClickLeave));
_button.normalSprite = "btn_common_01_s_off";
_button.pressedSprite = "btn_common_01_s_on";
}
}
private void OnClickInterrupt()
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_COMMON_BUTTON);
PauseChatPolling();
SystemText text = Data.SystemText;
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
dialogBase.SetTitleLabel(text.Get("Gathering_Chat_0012"));
dialogBase.SetText(text.Get("Gathering_Chat_0013"));
dialogBase.SetButtonText(text.Get("Gathering_Chat_0014"), text.Get("Common_0005"));
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.RedBtn_CancelBtn);
dialogBase.SetSize(DialogBase.Size.S);
dialogBase.onPushButton1 = delegate
{
GatheringInterruptTask task = new GatheringInterruptTask();
_chatConnectController.StartConnectCommon(task, delegate
{
StopChatPolling();
ChangeViewWithDialog(text.Get("Gathering_Chat_0019"));
});
};
dialogBase.onPushButton2 = ResumeChatPolling;
dialogBase.onCloseWithoutSelect = ResumeChatPolling;
}
private void OnClickLeave()
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_COMMON_BUTTON);
PauseChatPolling();
SystemText text = Data.SystemText;
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
dialogBase.SetTitleLabel(text.Get("Gathering_Chat_0016"));
dialogBase.SetText(text.Get("Gathering_Chat_0017"));
dialogBase.SetButtonText(text.Get("Gathering_Chat_0018"), text.Get("Common_0005"));
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.BlueBtn_CancelBtn);
dialogBase.SetSize(DialogBase.Size.S);
dialogBase.onPushButton1 = delegate
{
GatheringLeaveTask task = new GatheringLeaveTask();
_chatConnectController.StartConnectCommon(task, delegate
{
StopChatPolling();
ChangeViewWithDialog(text.Get("Gathering_Chat_0020"));
});
};
dialogBase.onPushButton2 = ResumeChatPolling;
dialogBase.onCloseWithoutSelect = ResumeChatPolling;
}
private void ChangeViewWithDialog(string text)
{
UIManager.GetInstance().CreateConfirmationDialog(text).OnCloseStart = Gathering.BackToMyPageForDrop;
}
private void PauseChatPolling()
{
_chatConnectController.PausePolling();
}
private void ResumeChatPolling()
{
_chatConnectController.ResumePolling();
}
private void StopChatPolling()
{
_chatConnectController.StopPolling();
}
}