using Cal.DataTable; using System; namespace ET { [ActorMessageHandler] public class C2M_StartManulEquipBattleHandler: AMActorLocationRpcHandler { protected override async ETTask Run(Unit unit, C2M_StartManulEquipBattle request, M2C_StartManulEquipBattle response, Action reply) { try { //!排除队伍 // Team team = TeamComponent.Instance.Get(unit.TeamLeaderId); // if (team != null) // { // if (!AppConfig.inst.isTest) // if (team.MemberCount < 3) // { // response.Message = "至少3人才能挑战!"; // reply(); // return; // } // } // // if (team.TeamState == TeamState.Fight) // { // Log.Error($"*【{UserComponent.Instance.Get(unit.Id)?.NickName} ({unit.Id})】多次进行手工副本战斗"); // response.Message = "系统错误"; // reply(); // return; // } // // UnitScene unitScene = unit.GetComponent(); // UnitSceneType unitSceneType = MapHelper.GetMapType(unitScene.MapId / 100); // if (unitSceneType != UnitSceneType.ManulEquip) // { // Log.Error($"*【{UserComponent.Instance.Get(unit.Id)?.NickName} ({unit.Id})】场景{unitScene.MapId / 100}错误"); // response.Message = "系统错误"; // reply(); // return; // } // // MapMonsterComponent monsterComponent = unit.GetComponent(); // if (!monsterComponent.TryGet(MapMonsterType.ManulEquip,out Unit _unit)) // { // response.Message = "您已击杀此领主"; // reply(); // return; // } // // long configId = _unit.GetComponent().configId; // ManulEquipMonsterConfig config = ManulEquipMonsterConfigCategory.Instance.Get(configId); // MapMonsterConfig mapMonsterConfig = // MapMonsterConfigCategory.Instance.Get(MapMonsterConfigCategory.Instance.GetManulEquipId((int) (configId % 1000 / 100))); // if ((unitScene.Position - new UnityEngine.Vector2(mapMonsterConfig.X, mapMonsterConfig.Y)).sqrMagnitude > MoveHelper.AtkDis) // { // Log.Error($"*【{UserComponent.Instance.Get(unit.Id)?.NickName} ({unit.Id})】位置{unitScene.Position}错误"); // response.Message = "系统错误"; // reply(); // return; // } // // ManulEquipMap.instance.DestoryUnit(unit); // CopyBattle battle = BattleMgrCompnent.Instance.CreateBattle(team); // MonsterFactoryHelper.ManulEquipGenerate(battle, config); // battle.Init(battle.team, battle.targetTeam, CopyConfigId.ManulEquipBattle, config.Id); // // response.ConfigId = (int) config.Id; reply(); await ETTask.CompletedTask; } catch (Exception e) { Log.Error(e); } } } }