Files
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

132 lines
3.4 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using Cute;
using UnityEngine;
namespace Wizard;
public class ChatLogPlate : UIBase
{
private const int MARGIN_UNREAD_MESSAGE = 26;
[SerializeField]
private Transform _layoutRoot;
[SerializeField]
private ChatLogPlateLayoutMember _layoutOwn;
[SerializeField]
private ChatLogPlateLayoutMember _layoutOtherMember;
[SerializeField]
private ChatLogPlateLayoutNoMember _layoutNoMember;
[SerializeField]
private GameObject _unreadMessageUI;
private ChatMessageInfo _messageInfo;
private Func<List<string>, bool> _funcIsLoadedResources;
public int GetHeightSize(ChatMessageInfo messageInfo, bool isUnreadMessage)
{
int num = (int)GetDisplayByMessageInfo(messageInfo).GetPlateSize(messageInfo).y;
if (isUnreadMessage)
{
num += 26;
}
return num;
}
public void Init(IChatSettings chatSettings, ChatConnectController chatConnectController, ChatLogUI.PartsForPlate partsForPlate, Func<List<string>, bool> funcIsLoadedResources)
{
_funcIsLoadedResources = funcIsLoadedResources;
_layoutOwn.Init(chatSettings, chatConnectController, partsForPlate);
_layoutOtherMember.Init(chatSettings, chatConnectController, partsForPlate);
_layoutNoMember.Init(chatSettings, chatConnectController, partsForPlate);
}
public void SetData(ChatMessageInfo messageInfo, bool isUnreadMessage)
{
ClearDisplay();
if (messageInfo != null)
{
_messageInfo = messageInfo;
UpdateUnreadMessage(isUnreadMessage);
UpdateDisplay();
}
}
private void ClearDisplay()
{
_layoutRoot.localPosition = Vector3.zero;
_unreadMessageUI.gameObject.SetActive(value: false);
_layoutOwn.ClearDisplay();
_layoutOwn.gameObject.SetActive(value: false);
_layoutOtherMember.ClearDisplay();
_layoutOtherMember.gameObject.SetActive(value: false);
_layoutNoMember.ClearDisplay();
_layoutNoMember.gameObject.SetActive(value: false);
}
private ChatLogPlateLayoutBase GetDisplayByMessageInfo(ChatMessageInfo info)
{
ChatLogPlateLayoutBase result = null;
switch (info.TalkerType)
{
case ChatMessageInfo.eTalkerType.NO_MEMBER:
result = _layoutNoMember;
break;
case ChatMessageInfo.eTalkerType.OTHER:
result = _layoutOtherMember;
break;
case ChatMessageInfo.eTalkerType.OWN:
result = _layoutOwn;
break;
}
return result;
}
private void UpdateUnreadMessage(bool isUnreadMessage)
{
_unreadMessageUI.gameObject.SetActive(isUnreadMessage);
if (isUnreadMessage)
{
_layoutRoot.localPosition = Vector3.down * 26f;
}
else
{
_layoutRoot.localPosition = Vector3.zero;
}
}
private void UpdateDisplay()
{
ChatLogPlateLayoutBase logDisplay = GetDisplayByMessageInfo(_messageInfo);
logDisplay.gameObject.SetActive(value: true);
logDisplay.SetDisplayBeforeLoad(_messageInfo);
StartCoroutine(CheckResouceLoaded(_messageInfo.MessageId, _messageInfo.GetResourcePathList(), delegate
{
logDisplay.SetDisplayAfterLoad(_messageInfo);
}));
}
private IEnumerator CheckResouceLoaded(int messageId, List<string> checkResourceList, Action onLoadEndCallback)
{
while (true)
{
if (_messageInfo.MessageId != messageId)
{
yield break;
}
if (_funcIsLoadedResources.Call(checkResourceList))
{
break;
}
yield return null;
}
onLoadEndCallback.Call();
}
}