Files
RedHotRoast-ios/Assets/Scripts/ModuleUI/FAQ/FAQUICtrl.cs
T
2026-04-22 09:52:55 +08:00

157 lines
4.9 KiB
C#

using System.Collections.Generic;
using UnityEngine;
namespace FlowerPower
{
public class FAQUICtrl : BaseUICtrl
{
private FAQUI ui;
private FAQModel model;
private uint openUIMsg = UICtrlMsg.FAQUI_Open;
private uint closeUIMsg = UICtrlMsg.FAQUI_Close;
#region 生命周期
protected override void OnInit()
{
//model = ModuleManager.Instance.GetModel(ModelConst.FAQModel) as FAQModel;
}
protected override void OnDispose()
{
}
public override void OpenUI(object args = null)
{
if (ui == null)
{
ui = new FAQUI(this);
ui.Open(args);
}
}
public override void CloseUI(object args = null)
{
if (ui != null && !ui.isClose)
{
ui.Close();
}
ui = null;
}
#endregion
#region 消息
public override uint GetOpenUIMsg(string uiName)
{
return openUIMsg;
}
public override uint GetCloseUIMsg(string uiName)
{
return closeUIMsg;
}
protected override void AddListener()
{
uiCtrlDispatcher.AddListener(openUIMsg, OpenUI);
uiCtrlDispatcher.AddListener(closeUIMsg, CloseUI);
HallManager.Instance.UpdateSecondEvent += timeEvent;
}
protected override void RemoveListener()
{
uiCtrlDispatcher.RemoveListener(openUIMsg, OpenUI);
uiCtrlDispatcher.RemoveListener(closeUIMsg, CloseUI);
}
protected override void AddServerListener()
{
}
protected override void RemoveServerListener()
{
}
private int time = 0;
private int refresh_time=5;
void timeEvent()
{
time++;
// Debug.Log((int)GameHelper.GetNowTime());
if (FAQUI.user_arr == null&&time > refresh_time) //第一次显示
{
List<MessageBoard> message_list = ConfigSystem.GetConfig<MessageBoardModel>().dataList;
FAQUI.user_arr = message_list[0].user_name.Split(",");
int user_index = PlayerPrefs.GetInt("user_index", 0);
if (user_index + 10 >= FAQUI.user_arr.Length) user_index = 0;
FAQUI.content_arr = message_list[0].message.Split(",");
int faq_index = PlayerPrefs.GetInt("faq_index", 0);
if (faq_index + 10 >= FAQUI.content_arr.Length) faq_index = 0;
for (int i = user_index; i < user_index + 10; i++)
{
FAQUI.list_user_arr.Add(FAQUI.user_arr[i]);
}
for (int i = faq_index; i < faq_index + 10; i++)
{
FAQUI.list_content_arr.Add(FAQUI.content_arr[i]);
}
if (PlayerPrefs.GetInt("user_FAQindex", 0) < 10)
{
if (!string.IsNullOrEmpty(PlayerPrefs.GetString("user_FAQcontent", "")))
{
FAQUI.list_user_arr.Insert(10 - PlayerPrefs.GetInt("user_FAQindex", 0), PreferencesMgr.Instance.PlayerName);
FAQUI.list_content_arr.Insert(10 - PlayerPrefs.GetInt("user_FAQindex", 0), PlayerPrefs.GetString("user_FAQcontent", ""));
}
}
user_index += 10;
faq_index += 10;
PlayerPrefs.SetInt("user_index", user_index);
PlayerPrefs.SetInt("faq_index", faq_index);
}
if (time > refresh_time)
{
time = 0;
int user_index = PlayerPrefs.GetInt("user_index", 0);
// Debug.Log(user_index);
// Debug.Log(FAQUI.user_arr);
// Debug.Log(FAQUI.user_arr.Length);
if (user_index + 1 >= FAQUI.user_arr.Length) user_index = 0;
int faq_index = PlayerPrefs.GetInt("faq_index", 0);
if (faq_index + 1 >= FAQUI.content_arr.Length) faq_index = 0;
FAQUI.list_user_arr.Add(FAQUI.user_arr[user_index]);
FAQUI.list_content_arr.Add(FAQUI.content_arr[faq_index]);
if (FAQUI.list_user_arr.Count > 50)
{
FAQUI.list_user_arr.RemoveAt(0);
}
if (FAQUI.list_content_arr.Count > 50)
{
FAQUI.list_content_arr.RemoveAt(0);
}
user_index++;
faq_index++;
PlayerPrefs.SetInt("user_FAQindex", PlayerPrefs.GetInt("user_FAQindex", 0) + 1);
PlayerPrefs.SetInt("user_index", user_index);
PlayerPrefs.SetInt("faq_index", faq_index);
GameDispatcher.Instance.Dispatch(GameMsg.faq_refresh);
}
}
#endregion
}
}