zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Server/Hotfix/Game/Helper/MapHelper.cs

71 lines
2.7 KiB
C#
Executable File

using Cal.DataTable;
using System;
using System.Collections.Generic;
namespace ET
{
public static class MapHelper
{
public static MapScene GetMapByUnitScene(this Unit unit)
{
try
{
UnitScene unitScene = unit.GetComponent<UnitScene>();
int mapid = unitScene.MapId;
MapScene map = MapSceneComponent.Instance.GetMap(mapid) ?? MapSceneComponent.Instance.GetMap(Sys_SceneId.Scene_MainCity * 100 + 1);
return map;
}
catch (Exception e)
{
Log.Error(e);
return MapSceneComponent.Instance.GetMap(Sys_SceneId.Scene_MainCity * 100 + 1);
}
}
public static MapScene GetMap(this Unit unit)
{
try
{
return unit.GetParent<MapScene>();
}
catch (Exception e)
{
Log.Error(e);
return MapSceneComponent.Instance.GetMap(Sys_SceneId.Scene_MainCity * 100 + 1);
}
}
public static UnitSceneType GetMapType( int sceneId) => sceneId switch
{
(<= Sys_SceneId.Scene_MainStory16 and
>= Sys_SceneId.Scene_MainStory1) or
(<= Sys_SceneId.Scene_MainStory32 and
>= Sys_SceneId.Scene_MainStory17)
=> UnitSceneType.MainStory,
Sys_SceneId.Scene_Beach => UnitSceneType.Beach,
Sys_SceneId.Scene_Challenge or
Sys_SceneId.Scene_Challenge_Middle or
Sys_SceneId.Scene_Challenge_Hard or
Sys_SceneId.Scene_PersonalBoss
=> UnitSceneType.Trial,
Sys_SceneId.Scene_Boss
=> UnitSceneType.Boss,
Sys_SceneId.Scene_PersonalPvp1 or
Sys_SceneId.Scene_PersonalPvp2 or
Sys_SceneId.Scene_PersonalPvp3
=> UnitSceneType.PersonalPvp,
Sys_SceneId.Scene_ManulEquip1 or
Sys_SceneId.Scene_ManulEquip2 or
Sys_SceneId.Scene_ManulEquip3
=> UnitSceneType.ManulEquip,
>=Sys_SceneId.Scene_SpaceTravel1 and
<=Sys_SceneId.Scene_SpaceTravel6
=> UnitSceneType.SpaceTravel,
>=Sys_SceneId.Scene_StarSoulCopyA and
<=Sys_SceneId.Scene_StarSoulCopyE
=> UnitSceneType.StarSoulCopy,
Sys_SceneId.Scene_WorldBoss=> UnitSceneType.WorldBoss,
Sys_SceneId.Scene_Death=> UnitSceneType.JourneyOfDeath,
_ => UnitSceneType.Common,
};
}
}