using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace ET.Server
{
///
/// 战斗服事件工具类
///
public static class BattleServerEventHelper
{
///
/// area related battleServerEvent
///
///
public static void AreaBattleServerEvent(JObject msg)
{
// Log.Debug($"AreaBattleServerEvent msg: {JsonConvert.SerializeObject(msg, Formatting.Indented)}");
long instanceId = Convert.ToInt64(msg.SelectToken("instanceId"));
Map map = GameMapComponent.Instance.Get(instanceId);
if (map == null)
{
Log.Warning($"areaBattleServerEvent no area: {msg}");
return;
}
switch (Convert.ToString(msg.SelectToken("eventName")))
{
case "unitDead":
{
map.GetComponent().OnUnitDead(map, msg);
return;
}
case "message":
{
// 副本消息
map.GetComponent().OnMessageEvent(msg);
return;
}
case "gameOver":
{
map.GetComponent().OnGameOver(map);
return;
}
case "pickItem":
{
map.GetComponent().OnPickItem(msg);
return;
}
case "KillBossEventB2R":
{
map.GetComponent().OnKillBoss(msg);
return;
}
case "BattleReportEventB2R":
{
// 战斗统计事件
map.GetComponent().OnBattleReport(map, msg);
return;
}
default:
{
Log.Error($"unknown area event: {msg}");
return;
}
}
}
///
/// player related battleServerEvent
///
///
public static void PlayerBattleServerEvent(JObject msg)
{
Log.Debug($"PlayerBattleServerEvent msg: {JsonConvert.SerializeObject(msg, Formatting.Indented)}");
switch (Convert.ToString(msg.SelectToken("eventName")))
{
case "ConsumeItemEventB2R":
{
return;
}
case "interActiveItem":
{
return;
}
case "changeSceneProgress":
{
return;
}
case "TransUnitEventB2R":
{
return;
}
case "SummonMountEventB2R":
{
return;
}
case "ShowRebirthDialogueB2R":
{
return;
}
case "TriggerSceneEventB2R":
{
return;
}
case "PlayerExceptionEventB2R":
{
return;
}
}
}
///
/// task related battleServerEvent
///
///
public static void TaskBattleServerEvent(JObject msg)
{
Log.Debug($"TaskBattleServerEvent msg: {JsonConvert.SerializeObject(msg, Formatting.Indented)}");
}
public static void MapNotifyEvent(JObject msg)
{
Log.Debug($"MapNotifyEvent msg: {JsonConvert.SerializeObject(msg, Formatting.Indented)}");
}
}
}