112 lines
3.4 KiB
C#
112 lines
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using cfg;
|
|
using cfg.ActorCfg;
|
|
using cfg.LevelCfg;
|
|
using Framework;
|
|
using Gameplay;
|
|
using Gameplay.Level;
|
|
using PhxhSDK;
|
|
|
|
namespace Gameplay
|
|
{
|
|
public class JumpToManager
|
|
{
|
|
private static readonly Dictionary<JumpFuncType, Delegate> _jumpDic = new()
|
|
{
|
|
[JumpFuncType.Cultivate_Character] = (Action<int>)JumpToCultivateCharacter,
|
|
[JumpFuncType.Level_Select] = (Action<int>)JumpToLevelSelect,
|
|
[JumpFuncType.Level_Detail] = (Action<int>)JumpToLevelDetail,
|
|
[JumpFuncType.Item_Shop]=(Action<int>)JumpToShopDetail,
|
|
[JumpFuncType.PVP_Main] = (Action)JumpToPvpMain,
|
|
};
|
|
|
|
private static void _DoJumpFunc(JumpFuncType key)
|
|
{
|
|
var action = _jumpDic[key];
|
|
if (action is Action act)
|
|
{
|
|
act();
|
|
}
|
|
}
|
|
|
|
private static void _DoJumpFunc<T>(JumpFuncType key, T param)
|
|
{
|
|
var action = _jumpDic[key];
|
|
if (action is Action<T> act)
|
|
{
|
|
act(param);
|
|
}
|
|
}
|
|
|
|
public static void JumpFunc(JumpFuncType key)
|
|
{
|
|
_DoJumpFunc(key);
|
|
}
|
|
|
|
public static void JumpFunc<T>(JumpFuncType key, T param)
|
|
{
|
|
_DoJumpFunc(key, param);
|
|
}
|
|
|
|
public static async void JumpToCultivateCharacter(int uid)
|
|
{
|
|
DebugUtil.Log("跳转至培养角色界面,传入角色参数:" + uid + "\n逻辑请在此处实现");
|
|
await UISelectCharacterController.Open();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 跳转关卡选择
|
|
/// </summary>
|
|
/// <param name="levelId"></param>
|
|
public static async void JumpToLevelSelect(int levelId)
|
|
{
|
|
DebugUtil.Log("Jump to : " + levelId);
|
|
DataLevel data = TableManager.Instance.Tables.Level.Get(levelId);
|
|
if (data == null)
|
|
{
|
|
await UI_LevelSelectController.Open();
|
|
return;
|
|
}
|
|
|
|
LevelInfo levelInfo = LevelManager.Instance.GetLevelInfoByID(levelId); //new LevelInfo(data);
|
|
|
|
await UI_LevelSelectController.Open(levelInfo);
|
|
}
|
|
|
|
public static async void JumpToLevelDetail(int levelId)
|
|
{
|
|
DebugUtil.Log("Jump to : " + levelId);
|
|
DataLevel data = TableManager.Instance.Tables.Level.Get(levelId);
|
|
if (data == null)
|
|
{
|
|
DebugUtil.Log("Jump to level detail failed, level id not found: " + levelId);
|
|
return;
|
|
}
|
|
|
|
|
|
LevelInfo levelInfo = LevelManager.Instance.GetLevelInfoByID(levelId); //new LevelInfo(data);
|
|
|
|
await UI_LevelSelectController.Open(levelInfo);
|
|
UI_LevelDetailController.Open(levelInfo);
|
|
}
|
|
|
|
public static async void JumpToShopDetail(int shopID)
|
|
{
|
|
DebugUtil.Log("Jump to Shop : " + shopID);
|
|
var shopCfg = TableManager.Instance.Tables.Shop;
|
|
if (!shopCfg.DataMap.TryGetValue(shopID, out var shop))
|
|
{
|
|
DebugUtil.Log("Jump to shop detail failed, shop id not found: " + shopID);
|
|
return;
|
|
}
|
|
|
|
await UI_ShopController.Open(shopID);
|
|
}
|
|
|
|
public static async void JumpToPvpMain()
|
|
{
|
|
await UI_PVPMainController.Open();
|
|
}
|
|
}
|
|
} |