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(); 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(); } 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, }; } }