mirror of
http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite.git
synced 2025-11-20 02:37:12 +08:00
Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com> Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/58
83 lines
2.1 KiB
C#
83 lines
2.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Data;
|
|
using Managers;
|
|
using UnityEngine;
|
|
|
|
namespace UI
|
|
{
|
|
public class StartPlayUI:FullScreenUI
|
|
{
|
|
public Transform iconList;
|
|
|
|
private int _currentIndex;
|
|
|
|
public int CurrentDimensionIndex
|
|
{
|
|
get => _currentIndex;
|
|
set
|
|
{
|
|
_currentIndex = value;
|
|
if (_currentIndex < 0)
|
|
{
|
|
_currentIndex += mapViewUIList.Count;
|
|
}
|
|
else if (_currentIndex >= mapViewUIList.Count)
|
|
{
|
|
_currentIndex %= mapViewUIList.Count;
|
|
}
|
|
}
|
|
}
|
|
|
|
public DimensionDef CurrentDimension => mapViewUIList[CurrentDimensionIndex].DimensionDefine;
|
|
|
|
public MapViewUI mapViewUIPrefab;
|
|
public List<MapViewUI> mapViewUIList = new List<MapViewUI>();
|
|
|
|
private void Start()
|
|
{
|
|
var dimensionDefs = DefineManager.Instance.QueryDefinesByType<DimensionDef>();
|
|
if(dimensionDefs==null)
|
|
return;
|
|
foreach (var d in dimensionDefs)
|
|
{
|
|
if(!d.canSelect)
|
|
continue;
|
|
var newObj=Instantiate(mapViewUIPrefab,iconList);
|
|
mapViewUIList.Add(newObj);
|
|
newObj.Init(d);
|
|
newObj.gameObject.SetActive(false);
|
|
newObj.transform.localPosition = Vector3.zero;
|
|
}
|
|
|
|
UpdateUI();
|
|
}
|
|
|
|
public void UpdateUI()
|
|
{
|
|
if (mapViewUIList == null)
|
|
return;
|
|
for (var i = 0; i < mapViewUIList.Count; i++)
|
|
{
|
|
mapViewUIList[i].gameObject.SetActive(i == CurrentDimensionIndex);
|
|
}
|
|
}
|
|
|
|
public void OnStartGame()
|
|
{
|
|
Program.Instance.StartPlayGame(CurrentDimension);
|
|
}
|
|
|
|
public void OnLeft()
|
|
{
|
|
CurrentDimensionIndex-=1;
|
|
UpdateUI();
|
|
}
|
|
|
|
public void OnRight()
|
|
{
|
|
CurrentDimensionIndex+=1;
|
|
UpdateUI();
|
|
}
|
|
}
|
|
} |