91 lines
3.5 KiB
C#
91 lines
3.5 KiB
C#
using Cal.DataTable;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace ET
|
|
{
|
|
public class ManulEquipMapAwakeSystem : AwakeSystem<ManulEquipMap>
|
|
{
|
|
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<Unit>();
|
|
// MapMonsterComponent monsterComponent = player.GetComponent<MapMonsterComponent>();
|
|
// 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<Unit, UnitType>(self, UnitType.Monster);
|
|
// unit.AddComponent<ConfigIdComponent>().configId = id;
|
|
// UnitScene unitScene = unit.AddComponent<UnitScene>();
|
|
// 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<MapMonsterComponent>();
|
|
monsterComponent.Remove(MapMonsterType.ManulEquip);
|
|
}
|
|
}
|
|
}
|