Project_WL/Assets/Script/UI/NewGameUI.cs

175 lines
6.1 KiB
C#
Raw Normal View History

2024-12-15 01:39:39 +00:00
using UnityEngine;
using UnityEngine.Rendering.Universal;
public class NewGameUI : MonoBehaviourSingletonTemplate<NewGameUI>
{
public Camera UICamera;
2024-12-15 01:39:39 +00:00
public GameObject[] gos; // 0 공용 ui, 1 로비 ui들, 2 인게임 ui들, 3 농장 ui들
2025-01-26 03:52:03 +00:00
public GameObject[] gos_ingame; // 0 스테이지, 1 던전
public Ingame_Dungeon ingame_dungeon;
public GameObject[] gos_etc; // 0 힘민지 레벨업
2024-12-15 01:39:39 +00:00
public Transform tf_HUD;
public GuideQuestUI m_GuideQuestUI;
public MapChoiceUI m_MapChoiceUI;
public BangchiUI m_BangchiUI;
public PCUI m_PCUI;
public EquipmentUI m_EquipmentUI;
public SkillUI m_SkillUI;
public PetUI m_PetUI;
2025-04-15 00:28:07 +00:00
public GachaUI m_GachaUI;
2025-04-21 05:07:30 +00:00
public ShopUI m_ShopUI;
2024-12-15 01:39:39 +00:00
public CollectionUI m_CollectionUI;
public BattleUI m_BattleUI;
public IngamePetCard[] arr_PetCard;
public BotMenuBase[] FarmMenu;
2025-03-17 07:34:17 +00:00
public MissionUI m_MissionUI;
2025-03-26 00:49:56 +00:00
public BuffADUI m_BuffADUI;
2025-04-18 22:47:44 +00:00
public GameObject[] gos_noti; // 0 우편, 1 뽑기
2024-12-15 01:39:39 +00:00
2025-01-10 00:55:09 +00:00
bool ShowQuick = true;
2024-12-15 01:39:39 +00:00
private void Start()
{
2025-08-19 03:02:15 +00:00
Set_TestUI();
2024-12-15 01:39:39 +00:00
m_GuideQuestUI.Set();
2025-01-22 07:20:20 +00:00
InGameInfo.Ins.Load_Map(-1);
2024-12-15 01:39:39 +00:00
var cameraData = Camera.main.GetUniversalAdditionalCameraData();
cameraData.cameraStack.Add(UICamera);
// OffLineReward // TODO 정인호 : 오프라인 보상 설정
2025-04-14 02:34:12 +00:00
2025-04-18 22:47:44 +00:00
Set_Noti();
2024-12-15 01:39:39 +00:00
}
#if UNITY_EDITOR
private void Update()
{
if (Input.GetKey(KeyCode.P))
UnityEditor.EditorApplication.isPaused = !UnityEditor.EditorApplication.isPaused;
}
#endif
2025-04-18 22:47:44 +00:00
public void Set_Noti()
{
var sdata = ServerInfo.Ins.m_ServerData;
2025-07-29 01:23:52 +00:00
gos_noti[0].SetActive(ServerInfo.Ins.m_Mail.Mail.Count > 0);
2025-04-18 22:47:44 +00:00
gos_noti[1].SetActive(sdata.Noti_Gacha());
}
2024-12-15 01:39:39 +00:00
public void SetUI_byGameMode(eGameMode gameMode, bool farm = false)
{
if (farm) gameMode = eGameMode.Stage;
switch (gameMode)
{
case eGameMode.Lobby:
DSUtil.InActivateGameObjects(gos, 0);
gos[1].SetActive(true);
break;
case eGameMode.Stage:
DSUtil.InActivateGameObjects(gos, 0);
gos[2].SetActive(true);
DSUtil.InActivateGameObjects(gos_ingame, 0);
2025-04-02 01:16:20 +00:00
gos_etc[0].SetActive(MyValue.MyChoiceMapData.n_MapID > 0);
2024-12-15 01:39:39 +00:00
break;
case eGameMode.MyFarm:
DSUtil.InActivateGameObjects(gos, 3);
break;
case eGameMode.Dungeon:
DSUtil.InActivateGameObjects(gos, 2);
gos_etc[0].SetActive(MyValue.MyChoiceMapData.Get_MapData().e_Dungeon == eDungeon.d4_Wave);
DSUtil.InActivateGameObjects(gos_ingame, 1);
2025-01-28 04:23:32 +00:00
Refresh_DungeonUI();
break;
2024-12-15 01:39:39 +00:00
}
m_BattleUI.Set(eUICardType.Use, ServerInfo.Ins.m_ServerData.Equip.Preset);
LoadingUI.Ins.End_Loading(1);
2024-12-15 01:39:39 +00:00
}
2025-01-28 04:23:32 +00:00
public void Refresh_DungeonUI(int addmob = 0)
{
var dungeonData = MyValue.MyChoiceMapData.Get_DungeonMapData_orNull();
if (!DSUtil.CheckNull(dungeonData))
ingame_dungeon.Set(dungeonData.f_Time, dungeonData.n_MobCount + addmob);
}
2024-12-15 01:39:39 +00:00
public void OnClick_Button(GameObject go)
{
switch (go.name)
{
2025-01-10 00:55:09 +00:00
case "btn_quick":
ShowQuick = !ShowQuick;
go.GetComponent<Animation>().Play(ShowQuick ? "UIRot_Z_0to180" : "UIRot_Z_180to0");
break;
2024-12-15 01:39:39 +00:00
case "btn_map": m_MapChoiceUI.Set(); break;
case "btn_setting": OptionInfo.Ins.Set(); break;
case "btn_pcinfo": m_PCUI.Set(); break;
case "btn_equipment": m_EquipmentUI.Set(); break;
case "btn_skill": m_SkillUI.Set(); break;
case "btn_pet": m_PetUI.Set(); break;
2025-04-15 00:28:07 +00:00
case "btn_gacha": m_GachaUI.Set(); break;
2025-04-21 05:07:30 +00:00
case "btn_shop": m_ShopUI.Set(); break;
2024-12-15 01:39:39 +00:00
case "btn_collection": m_CollectionUI.Set(); break;
2025-03-17 07:34:17 +00:00
case "btn_mission": m_MissionUI.Set(); break;
2025-03-26 00:49:56 +00:00
case "btn_buffad": m_BuffADUI.Set(); break;
case "btn_mail": MailUI.Ins.Set(); break;
2024-12-15 01:39:39 +00:00
2025-01-22 07:20:20 +00:00
case "btn_farm": InGameInfo.Ins.Load_Map(0); break;
2024-12-15 01:39:39 +00:00
case "btn_btn_plantingseed": break;
case "btn_warehouse": break;
case "btn_farmer": break;
case "btn_gofarm": break; // 농장 돌아다니기
case "btn_exit":
if (!DSUtil.CheckNull(FarmFarmUI.Ins) && FarmFarmUI.Ins.isActiveAndEnabled)
FarmFarmUI.Ins.ReturnToFarm();
2025-01-26 18:40:10 +00:00
else if (InGameInfo.Ins.IsGameMode(eGameMode.Dungeon))
2025-01-26 03:52:03 +00:00
DungeonInfo.Ins.Stop_Dungeon(null);
else
2025-06-28 00:28:41 +00:00
{
ServerInfo.Ins.Save_StageResult(result =>
{
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Set_Item(2, result.gold);
var map = MyValue.MyChoiceMapData;
sdata.MapData_Set_StatLv(map.n_MapID, map.n_Difficult, eMainStatType.STR, result.mainstat[eMainStatType.STR]);
sdata.MapData_Set_StatLv(map.n_MapID, map.n_Difficult, eMainStatType.DEX, result.mainstat[eMainStatType.DEX]);
sdata.MapData_Set_StatLv(map.n_MapID, map.n_Difficult, eMainStatType.INT, result.mainstat[eMainStatType.INT]);
});
InGameInfo.Ins.Return_To_Lobby();
2025-06-28 00:28:41 +00:00
}
2025-04-02 01:16:20 +00:00
2025-07-23 03:31:50 +00:00
CloseAllFarmUI();
2025-04-02 01:16:20 +00:00
TestMapUIMgr.Ins.Set_TestBtns(false);
2024-12-15 01:39:39 +00:00
break;
2025-04-02 00:32:25 +00:00
#if UNITY_EDITOR
case "btn_testmap":
InGameInfo.Ins.Load_Map(-99);
2025-04-02 01:16:20 +00:00
TestMapUIMgr.Ins.Set_TestBtns(true);
2025-04-02 00:32:25 +00:00
break;
#endif
2024-12-15 01:39:39 +00:00
}
}
2025-07-22 06:43:35 +00:00
public void OnClick_FarmButton(int index)
2025-07-23 03:31:50 +00:00
{
CloseAllFarmUI();
FarmMenu[index].Set();
}
void CloseAllFarmUI()
2025-07-22 06:43:35 +00:00
{
for (int i = 0; i < FarmMenu.Length; i++)
FarmMenu[i].OnClick_Back();
}
2025-08-19 03:02:15 +00:00
public GameObject[] gos_test;
void Set_TestUI()
{
#if UNITY_EDITOR
DSUtil.ActivateGameObjects(gos_test);
#else
DSUtil.InActivateGameObjects(gos_test);
#endif
}
2024-12-15 01:39:39 +00:00
}