zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Server/Hotfix/Game/System/Map/ManulEquipMapSystem.cs

91 lines
3.5 KiB
C#
Executable File

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);
}
// 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);
}
catch (Exception e)
{
Log.Error(e);
}
}
public static void DestoryUnit(this ManulEquipMap self,Unit unit)
{
MapMonsterComponent monsterComponent = unit.GetComponent<MapMonsterComponent>();
monsterComponent.Remove(MapMonsterType.ManulEquip);
}
}
}