142 lines
5.8 KiB
C#
142 lines
5.8 KiB
C#
using Google.Protobuf;
|
|
using Google.Protobuf.WellKnownTypes;
|
|
|
|
|
|
using ServerCore;
|
|
using ServerBase;
|
|
using ServerCommon;
|
|
using ServerCommon.BusinessLogDomain;
|
|
using MetaAssets;
|
|
|
|
|
|
using static ClientToGameMessage.Types;
|
|
|
|
|
|
using USER_GUID = System.String;
|
|
using ANCHOR_META_GUID = System.String;
|
|
|
|
|
|
namespace GameServer;
|
|
|
|
public static class FarmingNotifyHelper
|
|
{
|
|
public static void send_GS2C_NTF_FARMING_ALL_LOAD(this Player player)
|
|
{
|
|
var user_create_or_load_action = player.getEntityAction<UserCreateOrLoadAction>();
|
|
NullReferenceCheckHelper.throwIfNull(user_create_or_load_action, () => $"user_create_or_load_action is null !!! - {player.toBasicString()}");
|
|
|
|
var user_loader = user_create_or_load_action.getSimpleEventTriggerType<UserLoader>();
|
|
NullReferenceCheckHelper.throwIfNull(user_loader, () => $"user_loader is null !!! - {player.toBasicString()}");
|
|
|
|
var process_farming_summary_all = user_loader.getProgressFarmingSummaryAll();
|
|
NullReferenceCheckHelper.throwIfNull(user_create_or_load_action, () => $"process_farming_summary_all is null !!! - {player.toBasicString()}");
|
|
|
|
var ntf = new GS2C_NTF_FARMING_ALL_LOAD();
|
|
ntf.ProgressFarmingSummaries.AddRange(process_farming_summary_all);
|
|
|
|
ClientToGame packet = new ClientToGame();
|
|
packet.Message = new ClientToGameMessage();
|
|
packet.Message.NtfFarmingAllLoad = ntf;
|
|
|
|
player.sendPacket(packet);
|
|
}
|
|
|
|
public static void send_GS2C_NTF_FARMING_START(Player player, FarmingEffect farmingEffect)
|
|
{
|
|
var game_zone_action = player.getEntityAction<GameZoneAction>();
|
|
NullReferenceCheckHelper.throwIfNull(game_zone_action, () => $"game_zone_action is null !!! - {player.toBasicString()}");
|
|
|
|
var curr_map = game_zone_action.getLinkedToMap();
|
|
NullReferenceCheckHelper.throwIfNull(curr_map, () => $"curr_map is null !!! - {player.toBasicString()}");
|
|
|
|
var faming_effect_action = farmingEffect.getEntityAction<FarmingEffectAction>();
|
|
NullReferenceCheckHelper.throwIfNull(faming_effect_action, () => $"faming_effect_action is null !!! - {player.toBasicString()}");
|
|
|
|
var anchor_info = faming_effect_action.getAnchorInfo();
|
|
|
|
var ntf = new GS2C_NTF_FARMING_START();
|
|
ntf.FarmingAnchorMetaId = anchor_info.AnchorGuid;
|
|
ntf.FarmingSummary = farmingEffect.toFarmingSummary();
|
|
|
|
ClientToGame packet = new ClientToGame();
|
|
packet.Message = new ClientToGameMessage();
|
|
packet.Message.NtfFarmingStart = ntf;
|
|
|
|
curr_map.Broadcast(anchor_info.AnchorPos, packet);
|
|
}
|
|
|
|
public static void send_GS2C_NTF_FARMING_CANCEL(Player player, FarmingEffect farmingEffect)
|
|
{
|
|
var game_zone_action = player.getEntityAction<GameZoneAction>();
|
|
NullReferenceCheckHelper.throwIfNull(game_zone_action, () => $"game_zone_action is null !!! - {player.toBasicString()}");
|
|
|
|
var curr_map = game_zone_action.getLinkedToMap();
|
|
NullReferenceCheckHelper.throwIfNull(curr_map, () => $"curr_map is null !!! - {player.toBasicString()}");
|
|
|
|
var faming_effect_action = farmingEffect.getEntityAction<FarmingEffectAction>();
|
|
NullReferenceCheckHelper.throwIfNull(faming_effect_action, () => $"faming_effect_action is null !!! - {player.toBasicString()}");
|
|
|
|
var anchor_info = faming_effect_action.getAnchorInfo();
|
|
|
|
var ntf = new GS2C_NTF_FARMING_CANCEL();
|
|
ntf.FarmingAnchorMetaId = anchor_info.AnchorGuid;
|
|
ntf.FarmingSummary = farmingEffect.toFarmingSummary();
|
|
|
|
ClientToGame packet = new ClientToGame();
|
|
packet.Message = new ClientToGameMessage();
|
|
packet.Message.NtfFarmingCancel = ntf;
|
|
|
|
curr_map.Broadcast(anchor_info.AnchorPos, packet, player.getHostId());
|
|
}
|
|
|
|
public static void send_GS2C_NTF_FARMING_END(Map currMap, AnchorInfo anchorInfo, FarmingSummary farmingSummary)
|
|
{
|
|
var ntf = new GS2C_NTF_FARMING_END();
|
|
ntf.FarmingAnchorMetaId = anchorInfo.AnchorGuid;
|
|
ntf.FarmingSummary = farmingSummary;
|
|
|
|
ClientToGame packet = new ClientToGame();
|
|
packet.Message = new ClientToGameMessage();
|
|
packet.Message.NtfFarmingEnd = ntf;
|
|
|
|
currMap.Broadcast(anchorInfo.AnchorPos, packet);
|
|
}
|
|
|
|
public static void send_GS2MQS_NTF_FARMING_END( GameServerLogic serverLogic
|
|
, string targetServerName
|
|
, USER_GUID userGuid
|
|
, FarmingSummary farmingSummary
|
|
, bool isApplyDb = true )
|
|
{
|
|
var mg_server = serverLogic.getRabbitMqConnector() as RabbitMQ4Game;
|
|
NullReferenceCheckHelper.throwIfNull(mg_server, () => $"mg_server is null !!!");
|
|
|
|
var s2s_ntf_msg = new ServerMessage();
|
|
var ntf_farming_end = new ServerMessage.Types.GS2MQS_NTF_FARMING_END();
|
|
s2s_ntf_msg.NtfFarmingEnd = ntf_farming_end;
|
|
|
|
ntf_farming_end.UserGuid = userGuid;
|
|
ntf_farming_end.FarmingSummary = farmingSummary;
|
|
ntf_farming_end.IsApplyDb = isApplyDb == true ? BoolType.True : BoolType.False;
|
|
|
|
mg_server.SendMessage(targetServerName, s2s_ntf_msg);
|
|
}
|
|
|
|
public static void send_GS2C_NTF_FARMING_END(Player player, FarmingSummary farmingSummary)
|
|
{
|
|
var ntf = new GS2C_NTF_FARMING_END();
|
|
ntf.FarmingAnchorMetaId = farmingSummary.FarmingAnchorMetaId;
|
|
ntf.FarmingSummary = farmingSummary;
|
|
|
|
ClientToGame packet = new ClientToGame();
|
|
packet.Message = new ClientToGameMessage();
|
|
packet.Message.NtfFarmingEnd = ntf;
|
|
|
|
if (false == GameServerApp.getServerLogic().onSendPacket(player, packet))
|
|
{
|
|
Log.getLogger().error($"Failed to onSendPacket() !!! : {packet.toBasicString()} - {player.toBasicString()}");
|
|
}
|
|
}
|
|
|
|
}
|