67 lines
2.5 KiB
C#
67 lines
2.5 KiB
C#
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 => 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,
|
|
_ => UnitSceneType.Common,
|
|
};
|
|
}
|
|
}
|