218 lines
5.9 KiB
C#
218 lines
5.9 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using Animancer;
|
||
using Logic;
|
||
using Logic.Action;
|
||
using Logic.AI;
|
||
using Logic.Audio;
|
||
using Logic.Multilingual;
|
||
using ParadoxNotion;
|
||
using RuntimeData;
|
||
using Steamworks;
|
||
using TH1_Core.Events;
|
||
using TH1_Core.Managers;
|
||
using TH1_Logic.Action;
|
||
using TH1_Logic.Config;
|
||
using TH1_Logic.Core;
|
||
using TH1_Logic.Net;
|
||
using TH1_Logic.Steam;
|
||
using TH1_UI.View.Announce;
|
||
using TH1Resource;
|
||
using TMPro;
|
||
using Unity.VisualScripting;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
using Random = UnityEngine.Random;
|
||
|
||
namespace TH1_UI.View.Outside
|
||
{
|
||
|
||
|
||
public class UIOutsideMenuView : Base.View
|
||
{
|
||
[Header("按钮")]
|
||
//public Button CloseButton;
|
||
public Button StartButton;
|
||
public Button MultiplayButton;
|
||
public Button ResumeButton;
|
||
public Button LibraryButton;
|
||
public Button HistoryButton;
|
||
public Button TutorButton;
|
||
public Button StoryButton;
|
||
|
||
public List<UIOutsideMenuButtonMono> ButtonList;
|
||
public Button AnnouncementButton;
|
||
public Button AboutButton;
|
||
public Button SettingButton;
|
||
public Button ShutdownButton;
|
||
|
||
public UIOutsideMenuAnnouncementPanelMono AnnouncementPanel;
|
||
public UIOutsideMenuAboutPanelMono AboutPanel;
|
||
public UIOutsideMenuSettingPanelMono SettingPanel;
|
||
public UIOutsideMenuShutdownPanelMono ShutdownPanel;
|
||
|
||
|
||
public TextMeshProUGUI QQHintVersion;
|
||
|
||
[Header("选择列表")]
|
||
private List<UIOutsideSelectAvatarMono> _monoList;
|
||
private Empire _selectEmpire;
|
||
|
||
[Header("详细信息")]
|
||
|
||
[Header("子界面")]
|
||
public UIOutsideSelectCheckPanelMono SelectCheckPanelMono;
|
||
|
||
//关闭时执行的委托
|
||
public ViDelegateAssisstant.Dele OnBtnCloseClick;
|
||
|
||
//开始游戏时执行的委托(目前委托内容就是执行controller的Close())
|
||
public ViDelegateAssisstant.Dele OnStartGame;
|
||
|
||
protected override void OnInit()
|
||
{
|
||
base.OnInit();
|
||
AnnouncementPanel.OnInit();
|
||
AboutPanel.OnInit();
|
||
SettingPanel.OnInit();
|
||
ShutdownPanel.OnInit();
|
||
}
|
||
|
||
|
||
private void GetRandomGiantList(int count,out List<GiantType> giantTypeList)
|
||
{
|
||
var forceList = new List<ForceEnum>() { ForceEnum.Remilia, ForceEnum.Kaguya, ForceEnum.Kanako };
|
||
var chessList = new List<ChessType>()
|
||
{ ChessType.King, ChessType.Knight, ChessType.Queen, ChessType.Rook, ChessType.Bishop };
|
||
|
||
giantTypeList = new List<GiantType>();
|
||
int tct = 0;
|
||
while (giantTypeList.Count < count && tct < 10000000)
|
||
{
|
||
var force = forceList[Random.Range(0, forceList.Count)];
|
||
var chess = chessList[Random.Range(0, chessList.Count)];
|
||
Table.Instance.UnitTypeDataAssets.GetGiantTypeByChessType(chess, force, out var giantType);
|
||
bool same = false;
|
||
foreach(var t in giantTypeList)
|
||
if (t == giantType)
|
||
same = true;
|
||
if(!same) giantTypeList.Add(giantType);
|
||
tct++;
|
||
}
|
||
|
||
}
|
||
|
||
public void SetContent(ShowUIOutsideMenu evt)
|
||
{
|
||
GetRandomGiantList(ButtonList.Count,out var giantTypeList);
|
||
for(int i =0;i < ButtonList.Count;i++)
|
||
ButtonList[i].SetContent(giantTypeList[i]);
|
||
|
||
StartButton.onClick.RemoveAllListeners();
|
||
StartButton.onClick.AddListener(OnStartClicked);
|
||
MultiplayButton.onClick.RemoveAllListeners();
|
||
MultiplayButton.onClick.AddListener(OnMultiplayClicked);
|
||
ResumeButton.onClick.RemoveAllListeners();
|
||
ResumeButton.gameObject.SetActive(false);
|
||
if (Main.Instance.HasArchive())
|
||
{
|
||
ResumeButton.gameObject.SetActive(true);
|
||
ResumeButton.onClick.AddListener(OnResumeClicked);
|
||
}
|
||
|
||
|
||
TutorButton.onClick.RemoveAllListeners();
|
||
TutorButton.onClick.AddListener(OnTutorClicked);
|
||
LibraryButton.onClick.RemoveAllListeners();
|
||
LibraryButton.onClick.AddListener(OnLibraryClicked);
|
||
HistoryButton.onClick.RemoveAllListeners();
|
||
HistoryButton.onClick.AddListener(OnHistoryClicked);
|
||
|
||
StoryButton.onClick.RemoveAllListeners();
|
||
StoryButton.onClick.AddListener(OnStoryClicked);
|
||
|
||
SettingButton.onClick.RemoveAllListeners();
|
||
SettingButton.onClick.AddListener(OnSettingClicked);
|
||
AnnouncementButton.onClick.RemoveAllListeners();
|
||
AnnouncementButton.onClick.AddListener(OnAnnouncementClicked);
|
||
AboutButton.onClick.RemoveAllListeners();
|
||
AboutButton.onClick.AddListener(OnAboutClicked);
|
||
ShutdownButton.onClick.RemoveAllListeners();
|
||
ShutdownButton.onClick.AddListener(OnShutdownClicked);
|
||
QQHintVersion.text = "Demo V" + ConfigManager.Instance.VersionCfg.CurVersionInfo.FullVersion;
|
||
|
||
//Step #6 设置BGM
|
||
AudioManager.Instance.PlayMusic("Main",1f,2f,true);
|
||
|
||
}
|
||
|
||
//在Controller 调用Close的时候,会先调用这个closeview
|
||
public void OnCloseView()
|
||
{
|
||
}
|
||
|
||
public void OnStartClicked()
|
||
{
|
||
EventManager.Publish(new ShowUIOutsideSelect());
|
||
}
|
||
|
||
public void OnResumeClicked()
|
||
{
|
||
if (Main.Instance.HasArchive())
|
||
{
|
||
EventManager.Publish(new ShowUIOutsideLoading());
|
||
var fadeinTime = ResourceCache.Instance.AnimCache.UICommonPanelFadeIn.length;
|
||
var prepareTime = 1f;
|
||
Timer.Instance.TimerRegister(this,()=>{Main.Instance.ResumeMatch();EventManager.Publish(new HideUIOutsideMenu());},fadeinTime,"MenuResumeClicked1");
|
||
Timer.Instance.TimerRegister(this,()=>{EventManager.Publish(new HideUIOutsideAll());},fadeinTime+prepareTime,"MenuResumeClicked2");
|
||
}
|
||
}
|
||
|
||
public void OnLibraryClicked()
|
||
{
|
||
EventManager.Publish(new ShowUIOutsideLibrary());
|
||
}
|
||
|
||
public void OnMultiplayClicked()
|
||
{
|
||
EventManager.Publish(new ShowUIOutsideMultiplay(){});
|
||
}
|
||
|
||
public void OnTutorClicked()
|
||
{
|
||
EventManager.Publish(new ShowUIOutsideTutor());
|
||
}
|
||
|
||
public void OnHistoryClicked()
|
||
{
|
||
EventManager.Publish(new ShowUIOutsideHistory(){});
|
||
}
|
||
public void OnAnnouncementClicked()
|
||
{
|
||
|
||
AnnouncementPanel.Open();
|
||
AnnouncementPanel.SetContent();
|
||
}
|
||
public void OnAboutClicked()
|
||
{
|
||
AboutPanel.Open();
|
||
}
|
||
|
||
public void OnSettingClicked()
|
||
{
|
||
SettingPanel.Open();
|
||
}
|
||
|
||
public void OnStoryClicked()
|
||
{
|
||
EventManager.Publish(new ShowUIOutsideStory(){});
|
||
}
|
||
|
||
public void OnShutdownClicked()
|
||
{
|
||
ShutdownPanel.Open();
|
||
}
|
||
}
|
||
|
||
}
|