using Cal.DataTable; using System; using System.Collections.Generic; namespace ET { public class ManulEquipMapAwakeSystem : AwakeSystem { public override void Awake(ManulEquipMap self) { ManulEquipMap.instance = self; } } public static class ManulEquipMapSystem { public static bool CanEnterMap(this ManulEquipMap self, PlayerData data, int targetMapId) { int layer = targetMapId % 100; if (layer != 1) { return data.currManulEquipMapLayer == layer; } return true; } public static async ETTask EnterMap(this ManulEquipMap self, PlayerData data, int targetMapId) { int layer = targetMapId % 100; if (layer == 1) { data.currManulEquipMapLayer = 1; UnitHelper.SaveComponenet(data).Coroutine(); } // await GenerateMonster(self, data, targetMapId / 100, layer); } // private static async ETTask GenerateMonster(ManulEquipMap self,PlayerData data, int sceneId, int layer) // { // try // { // Unit player = data.GetParent(); // MapMonsterComponent monsterComponent = player.GetComponent(); // int difficulty = sceneId switch // { // Sys_SceneId.Scene_ManulEquip1 => 1, // Sys_SceneId.Scene_ManulEquip2 => 2, // Sys_SceneId.Scene_ManulEquip3 => 3, // _ => throw new Exception($"sceneId is invalid where id = {sceneId}") // }; // int id = difficulty * 1000 + layer * 100 + 1; // // MapMonsterConfig mapMonsterConfig =MapMonsterConfigCategory.Instance.Get( MapMonsterConfigCategory.Instance.GetManulEquipId(layer)); // // Unit unit = EntityFactory.CreateWithParent(self, UnitType.Monster); // unit.AddComponent().configId = id; // UnitScene unitScene = unit.AddComponent(); // unitScene.Position = new UnityEngine.Vector2(mapMonsterConfig.X, mapMonsterConfig.Y); // monsterComponent.Add(MapMonsterType.ManulEquip,unit); // Game.EventSystem.Publish(new ET.EventType.OnCreateUnit // { // Actor_UnitId = data.Id, // unit = unit, // pos = unitScene.Position, // configId = (int)mapMonsterConfig.Id, // monsterType = ET.MapMonsterType.ManulEquip // }).Coroutine(); // } // catch (Exception e) // { // Log.Error(e); // } // } public static void SetLayer(this ManulEquipMap self, PlayerData data, long configId) { try { int layer = (int)(configId % 1000 / 100); data.currManulEquipMapLayer = ++layer; UnitHelper.SaveComponenet(data).Coroutine(); } catch (Exception e) { Log.Error(e); } } public static void DestoryUnit(this ManulEquipMap self,Unit unit) { MapMonsterComponent monsterComponent = unit.GetComponent(); monsterComponent.Remove(MapMonsterType.ManulEquip); } } }