using Milimoe.FunGame.Core.Api.Transmittal;
using Milimoe.FunGame.Core.Interface;
using Milimoe.FunGame.Core.Library.Common.Event;
using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Model;
namespace Milimoe.FunGame.Core.Library.Common.Addon
{
public abstract class GameMode : IGameMode
{
///
/// 模组名称
///
public abstract string Name { get; }
///
/// 模组描述
///
public abstract string Description { get; }
///
/// 模组版本
///
public abstract string Version { get; }
///
/// 模组作者
///
public abstract string Author { get; }
///
/// 模组所使用的地图
///
public abstract string Map { get; }
///
/// 加载标记
///
private bool IsLoaded = false;
///
/// 加载模组
///
public bool Load(params object[] objs)
{
if (IsLoaded)
{
return false;
}
// BeforeLoad可以阻止加载此模组
if (BeforeLoad())
{
// 模组加载后,不允许再次加载此模组
IsLoaded = true;
// 初始化此模组(传入委托或者Model)
Init(objs);
// 触发绑定事件
BindEvent();
// 如果加载后需要执行代码,请重写AfterLoad方法
AfterLoad();
}
return IsLoaded;
}
///
/// 模组加载后需要做的事
///
protected virtual void AfterLoad()
{
// override
}
///
/// 允许返回false来阻止加载此模组
///
///
protected virtual bool BeforeLoad()
{
return true;
}
///
/// 传递委托以便让模组调用
///
private void Init(params object[] objs)
{
if (objs.Length > 0) WritelnSystemInfo = (Action)objs[0];
if (objs.Length > 1) NewDataRequest = (Func)objs[1];
if (objs.Length > 2) NewLongRunningDataRequest = (Func)objs[2];
if (objs.Length > 3) Session = (Session)objs[3];
if (objs.Length > 4) Config = (FunGameConfig)objs[4];
}
///
/// 输出系统消息
///
protected Action WritelnSystemInfo = new(msg => Console.Write("\r" + msg + "\n\r> "));
///
/// 基于本地已连接的Socket创建新的数据请求
///
protected Func NewDataRequest = new(type => throw new ConnectFailedException());
///
/// 基于本地已连接的Socket创建长时间运行的数据请求
///
protected Func NewLongRunningDataRequest = new(type => throw new ConnectFailedException());
///
/// Session对象
///
protected Session Session = new();
///
/// Config对象
///
protected FunGameConfig Config = new();
///
/// 绑定事件。在后触发
///
private void BindEvent()
{
if (this is IGamingConnectEvent)
{
IGamingConnectEvent bind = (IGamingConnectEvent)this;
BeforeGamingConnect += bind.BeforeGamingConnectEvent;
AfterGamingConnect += bind.AfterGamingConnectEvent;
SucceedGamingConnect += bind.SucceedGamingConnectEvent;
FailedGamingConnect += bind.FailedGamingConnectEvent;
}
if (this is IGamingDisconnectEvent)
{
IGamingDisconnectEvent bind = (IGamingDisconnectEvent)this;
BeforeGamingDisconnect += bind.BeforeGamingDisconnectEvent;
AfterGamingDisconnect += bind.AfterGamingDisconnectEvent;
SucceedGamingDisconnect += bind.SucceedGamingDisconnectEvent;
FailedGamingDisconnect += bind.FailedGamingDisconnectEvent;
}
if (this is IGamingReconnectEvent)
{
IGamingReconnectEvent bind = (IGamingReconnectEvent)this;
BeforeGamingReconnect += bind.BeforeGamingReconnectEvent;
AfterGamingReconnect += bind.AfterGamingReconnectEvent;
SucceedGamingReconnect += bind.SucceedGamingReconnectEvent;
FailedGamingReconnect += bind.FailedGamingReconnectEvent;
}
if (this is IGamingBanCharacterEvent)
{
IGamingBanCharacterEvent bind = (IGamingBanCharacterEvent)this;
BeforeGamingBanCharacter += bind.BeforeGamingBanCharacterEvent;
AfterGamingBanCharacter += bind.AfterGamingBanCharacterEvent;
SucceedGamingBanCharacter += bind.SucceedGamingBanCharacterEvent;
FailedGamingBanCharacter += bind.FailedGamingBanCharacterEvent;
}
if (this is IGamingPickCharacterEvent)
{
IGamingPickCharacterEvent bind = (IGamingPickCharacterEvent)this;
BeforeGamingPickCharacter += bind.BeforeGamingPickCharacterEvent;
AfterGamingPickCharacter += bind.AfterGamingPickCharacterEvent;
SucceedGamingPickCharacter += bind.SucceedGamingPickCharacterEvent;
FailedGamingPickCharacter += bind.FailedGamingPickCharacterEvent;
}
if (this is IGamingRandomEvent)
{
IGamingRandomEvent bind = (IGamingRandomEvent)this;
BeforeGamingRandom += bind.BeforeGamingRandomEvent;
AfterGamingRandom += bind.AfterGamingRandomEvent;
SucceedGamingRandom += bind.SucceedGamingRandomEvent;
FailedGamingRandom += bind.FailedGamingRandomEvent;
}
if (this is IGamingMoveEvent)
{
IGamingMoveEvent bind = (IGamingMoveEvent)this;
BeforeGamingMove += bind.BeforeGamingMoveEvent;
AfterGamingMove += bind.AfterGamingMoveEvent;
SucceedGamingMove += bind.SucceedGamingMoveEvent;
FailedGamingMove += bind.FailedGamingMoveEvent;
}
if (this is IGamingAttackEvent)
{
IGamingAttackEvent bind = (IGamingAttackEvent)this;
BeforeGamingAttack += bind.BeforeGamingAttackEvent;
AfterGamingAttack += bind.AfterGamingAttackEvent;
SucceedGamingAttack += bind.SucceedGamingAttackEvent;
FailedGamingAttack += bind.FailedGamingAttackEvent;
}
if (this is IGamingSkillEvent)
{
IGamingSkillEvent bind = (IGamingSkillEvent)this;
BeforeGamingSkill += bind.BeforeGamingSkillEvent;
AfterGamingSkill += bind.AfterGamingSkillEvent;
SucceedGamingSkill += bind.SucceedGamingSkillEvent;
FailedGamingSkill += bind.FailedGamingSkillEvent;
}
if (this is IGamingItemEvent)
{
IGamingItemEvent bind = (IGamingItemEvent)this;
BeforeGamingItem += bind.BeforeGamingItemEvent;
AfterGamingItem += bind.AfterGamingItemEvent;
SucceedGamingItem += bind.SucceedGamingItemEvent;
FailedGamingItem += bind.FailedGamingItemEvent;
}
if (this is IGamingMagicEvent)
{
IGamingMagicEvent bind = (IGamingMagicEvent)this;
BeforeGamingMagic += bind.BeforeGamingMagicEvent;
AfterGamingMagic += bind.AfterGamingMagicEvent;
SucceedGamingMagic += bind.SucceedGamingMagicEvent;
FailedGamingMagic += bind.FailedGamingMagicEvent;
}
if (this is IGamingBuyEvent)
{
IGamingBuyEvent bind = (IGamingBuyEvent)this;
BeforeGamingBuy += bind.BeforeGamingBuyEvent;
AfterGamingBuy += bind.AfterGamingBuyEvent;
SucceedGamingBuy += bind.SucceedGamingBuyEvent;
FailedGamingBuy += bind.FailedGamingBuyEvent;
}
if (this is IGamingSuperSkillEvent)
{
IGamingSuperSkillEvent bind = (IGamingSuperSkillEvent)this;
BeforeGamingSuperSkill += bind.BeforeGamingSuperSkillEvent;
AfterGamingSuperSkill += bind.AfterGamingSuperSkillEvent;
SucceedGamingSuperSkill += bind.SucceedGamingSuperSkillEvent;
FailedGamingSuperSkill += bind.FailedGamingSuperSkillEvent;
}
if (this is IGamingPauseEvent)
{
IGamingPauseEvent bind = (IGamingPauseEvent)this;
BeforeGamingPause += bind.BeforeGamingPauseEvent;
AfterGamingPause += bind.AfterGamingPauseEvent;
SucceedGamingPause += bind.SucceedGamingPauseEvent;
FailedGamingPause += bind.FailedGamingPauseEvent;
}
if (this is IGamingUnpauseEvent)
{
IGamingUnpauseEvent bind = (IGamingUnpauseEvent)this;
BeforeGamingUnpause += bind.BeforeGamingUnpauseEvent;
AfterGamingUnpause += bind.AfterGamingUnpauseEvent;
SucceedGamingUnpause += bind.SucceedGamingUnpauseEvent;
FailedGamingUnpause += bind.FailedGamingUnpauseEvent;
}
if (this is IGamingSurrenderEvent)
{
IGamingSurrenderEvent bind = (IGamingSurrenderEvent)this;
BeforeGamingSurrender += bind.BeforeGamingSurrenderEvent;
AfterGamingSurrender += bind.AfterGamingSurrenderEvent;
SucceedGamingSurrender += bind.SucceedGamingSurrenderEvent;
FailedGamingSurrender += bind.FailedGamingSurrenderEvent;
}
if (this is IGamingUpdateInfoEvent)
{
IGamingUpdateInfoEvent bind = (IGamingUpdateInfoEvent)this;
BeforeGamingUpdateInfo += bind.BeforeGamingUpdateInfoEvent;
AfterGamingUpdateInfo += bind.AfterGamingUpdateInfoEvent;
SucceedGamingUpdateInfo += bind.SucceedGamingUpdateInfoEvent;
FailedGamingUpdateInfo += bind.FailedGamingUpdateInfoEvent;
}
}
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingConnect;
public event IGamingEventHandler.AfterEventHandler? AfterGamingConnect;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingConnect;
public event IGamingEventHandler.FailedEventHandler? FailedGamingConnect;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingDisconnect;
public event IGamingEventHandler.AfterEventHandler? AfterGamingDisconnect;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingDisconnect;
public event IGamingEventHandler.FailedEventHandler? FailedGamingDisconnect;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingReconnect;
public event IGamingEventHandler.AfterEventHandler? AfterGamingReconnect;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingReconnect;
public event IGamingEventHandler.FailedEventHandler? FailedGamingReconnect;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingBanCharacter;
public event IGamingEventHandler.AfterEventHandler? AfterGamingBanCharacter;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingBanCharacter;
public event IGamingEventHandler.FailedEventHandler? FailedGamingBanCharacter;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingPickCharacter;
public event IGamingEventHandler.AfterEventHandler? AfterGamingPickCharacter;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingPickCharacter;
public event IGamingEventHandler.FailedEventHandler? FailedGamingPickCharacter;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingRandom;
public event IGamingEventHandler.AfterEventHandler? AfterGamingRandom;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingRandom;
public event IGamingEventHandler.FailedEventHandler? FailedGamingRandom;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingMove;
public event IGamingEventHandler.AfterEventHandler? AfterGamingMove;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingMove;
public event IGamingEventHandler.FailedEventHandler? FailedGamingMove;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingAttack;
public event IGamingEventHandler.AfterEventHandler? AfterGamingAttack;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingAttack;
public event IGamingEventHandler.FailedEventHandler? FailedGamingAttack;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingSkill;
public event IGamingEventHandler.AfterEventHandler? AfterGamingSkill;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingSkill;
public event IGamingEventHandler.FailedEventHandler? FailedGamingSkill;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingItem;
public event IGamingEventHandler.AfterEventHandler? AfterGamingItem;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingItem;
public event IGamingEventHandler.FailedEventHandler? FailedGamingItem;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingMagic;
public event IGamingEventHandler.AfterEventHandler? AfterGamingMagic;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingMagic;
public event IGamingEventHandler.FailedEventHandler? FailedGamingMagic;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingBuy;
public event IGamingEventHandler.AfterEventHandler? AfterGamingBuy;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingBuy;
public event IGamingEventHandler.FailedEventHandler? FailedGamingBuy;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingSuperSkill;
public event IGamingEventHandler.AfterEventHandler? AfterGamingSuperSkill;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingSuperSkill;
public event IGamingEventHandler.FailedEventHandler? FailedGamingSuperSkill;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingPause;
public event IGamingEventHandler.AfterEventHandler? AfterGamingPause;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingPause;
public event IGamingEventHandler.FailedEventHandler? FailedGamingPause;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingUnpause;
public event IGamingEventHandler.AfterEventHandler? AfterGamingUnpause;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingUnpause;
public event IGamingEventHandler.FailedEventHandler? FailedGamingUnpause;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingSurrender;
public event IGamingEventHandler.AfterEventHandler? AfterGamingSurrender;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingSurrender;
public event IGamingEventHandler.FailedEventHandler? FailedGamingSurrender;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingUpdateInfo;
public event IGamingEventHandler.AfterEventHandler? AfterGamingUpdateInfo;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingUpdateInfo;
public event IGamingEventHandler.FailedEventHandler? FailedGamingUpdateInfo;
public void OnBeforeGamingConnectEvent(object sender, GamingEventArgs e)
{
BeforeGamingConnect?.Invoke(sender, e);
}
public void OnAfterGamingConnectEvent(object sender, GamingEventArgs e)
{
AfterGamingConnect?.Invoke(sender, e);
}
public void OnSucceedGamingConnectEvent(object sender, GamingEventArgs e)
{
SucceedGamingConnect?.Invoke(sender, e);
}
public void OnFailedGamingConnectEvent(object sender, GamingEventArgs e)
{
FailedGamingConnect?.Invoke(sender, e);
}
public void OnBeforeGamingDisconnectEvent(object sender, GamingEventArgs e)
{
BeforeGamingDisconnect?.Invoke(sender, e);
}
public void OnAfterGamingDisconnectEvent(object sender, GamingEventArgs e)
{
AfterGamingDisconnect?.Invoke(sender, e);
}
public void OnSucceedGamingDisconnectEvent(object sender, GamingEventArgs e)
{
SucceedGamingDisconnect?.Invoke(sender, e);
}
public void OnFailedGamingDisconnectEvent(object sender, GamingEventArgs e)
{
FailedGamingDisconnect?.Invoke(sender, e);
}
public void OnBeforeGamingReconnectEvent(object sender, GamingEventArgs e)
{
BeforeGamingReconnect?.Invoke(sender, e);
}
public void OnAfterGamingReconnectEvent(object sender, GamingEventArgs e)
{
AfterGamingReconnect?.Invoke(sender, e);
}
public void OnSucceedGamingReconnectEvent(object sender, GamingEventArgs e)
{
SucceedGamingReconnect?.Invoke(sender, e);
}
public void OnFailedGamingReconnectEvent(object sender, GamingEventArgs e)
{
FailedGamingReconnect?.Invoke(sender, e);
}
public void OnBeforeGamingBanCharacterEvent(object sender, GamingEventArgs e)
{
BeforeGamingBanCharacter?.Invoke(sender, e);
}
public void OnAfterGamingBanCharacterEvent(object sender, GamingEventArgs e)
{
AfterGamingBanCharacter?.Invoke(sender, e);
}
public void OnSucceedGamingBanCharacterEvent(object sender, GamingEventArgs e)
{
SucceedGamingBanCharacter?.Invoke(sender, e);
}
public void OnFailedGamingBanCharacterEvent(object sender, GamingEventArgs e)
{
FailedGamingBanCharacter?.Invoke(sender, e);
}
public void OnBeforeGamingPickCharacterEvent(object sender, GamingEventArgs e)
{
BeforeGamingPickCharacter?.Invoke(sender, e);
}
public void OnAfterGamingPickCharacterEvent(object sender, GamingEventArgs e)
{
AfterGamingPickCharacter?.Invoke(sender, e);
}
public void OnSucceedGamingPickCharacterEvent(object sender, GamingEventArgs e)
{
SucceedGamingPickCharacter?.Invoke(sender, e);
}
public void OnFailedGamingPickCharacterEvent(object sender, GamingEventArgs e)
{
FailedGamingPickCharacter?.Invoke(sender, e);
}
public void OnBeforeGamingRandomEvent(object sender, GamingEventArgs e)
{
BeforeGamingRandom?.Invoke(sender, e);
}
public void OnAfterGamingRandomEvent(object sender, GamingEventArgs e)
{
AfterGamingRandom?.Invoke(sender, e);
}
public void OnSucceedGamingRandomEvent(object sender, GamingEventArgs e)
{
SucceedGamingRandom?.Invoke(sender, e);
}
public void OnFailedGamingRandomEvent(object sender, GamingEventArgs e)
{
FailedGamingRandom?.Invoke(sender, e);
}
public void OnBeforeGamingMoveEvent(object sender, GamingEventArgs e)
{
BeforeGamingMove?.Invoke(sender, e);
}
public void OnAfterGamingMoveEvent(object sender, GamingEventArgs e)
{
AfterGamingMove?.Invoke(sender, e);
}
public void OnSucceedGamingMoveEvent(object sender, GamingEventArgs e)
{
SucceedGamingMove?.Invoke(sender, e);
}
public void OnFailedGamingMoveEvent(object sender, GamingEventArgs e)
{
FailedGamingMove?.Invoke(sender, e);
}
public void OnBeforeGamingAttackEvent(object sender, GamingEventArgs e)
{
BeforeGamingAttack?.Invoke(sender, e);
}
public void OnAfterGamingAttackEvent(object sender, GamingEventArgs e)
{
AfterGamingAttack?.Invoke(sender, e);
}
public void OnSucceedGamingAttackEvent(object sender, GamingEventArgs e)
{
SucceedGamingAttack?.Invoke(sender, e);
}
public void OnFailedGamingAttackEvent(object sender, GamingEventArgs e)
{
FailedGamingAttack?.Invoke(sender, e);
}
public void OnBeforeGamingSkillEvent(object sender, GamingEventArgs e)
{
BeforeGamingSkill?.Invoke(sender, e);
}
public void OnAfterGamingSkillEvent(object sender, GamingEventArgs e)
{
AfterGamingSkill?.Invoke(sender, e);
}
public void OnSucceedGamingSkillEvent(object sender, GamingEventArgs e)
{
SucceedGamingSkill?.Invoke(sender, e);
}
public void OnFailedGamingSkillEvent(object sender, GamingEventArgs e)
{
FailedGamingSkill?.Invoke(sender, e);
}
public void OnBeforeGamingItemEvent(object sender, GamingEventArgs e)
{
BeforeGamingItem?.Invoke(sender, e);
}
public void OnAfterGamingItemEvent(object sender, GamingEventArgs e)
{
AfterGamingItem?.Invoke(sender, e);
}
public void OnSucceedGamingItemEvent(object sender, GamingEventArgs e)
{
SucceedGamingItem?.Invoke(sender, e);
}
public void OnFailedGamingItemEvent(object sender, GamingEventArgs e)
{
FailedGamingItem?.Invoke(sender, e);
}
public void OnBeforeGamingMagicEvent(object sender, GamingEventArgs e)
{
BeforeGamingMagic?.Invoke(sender, e);
}
public void OnAfterGamingMagicEvent(object sender, GamingEventArgs e)
{
AfterGamingMagic?.Invoke(sender, e);
}
public void OnSucceedGamingMagicEvent(object sender, GamingEventArgs e)
{
SucceedGamingMagic?.Invoke(sender, e);
}
public void OnFailedGamingMagicEvent(object sender, GamingEventArgs e)
{
FailedGamingMagic?.Invoke(sender, e);
}
public void OnBeforeGamingBuyEvent(object sender, GamingEventArgs e)
{
BeforeGamingBuy?.Invoke(sender, e);
}
public void OnAfterGamingBuyEvent(object sender, GamingEventArgs e)
{
AfterGamingBuy?.Invoke(sender, e);
}
public void OnSucceedGamingBuyEvent(object sender, GamingEventArgs e)
{
SucceedGamingBuy?.Invoke(sender, e);
}
public void OnFailedGamingBuyEvent(object sender, GamingEventArgs e)
{
FailedGamingBuy?.Invoke(sender, e);
}
public void OnBeforeGamingSuperSkillEvent(object sender, GamingEventArgs e)
{
BeforeGamingSuperSkill?.Invoke(sender, e);
}
public void OnAfterGamingSuperSkillEvent(object sender, GamingEventArgs e)
{
AfterGamingSuperSkill?.Invoke(sender, e);
}
public void OnSucceedGamingSuperSkillEvent(object sender, GamingEventArgs e)
{
SucceedGamingSuperSkill?.Invoke(sender, e);
}
public void OnFailedGamingSuperSkillEvent(object sender, GamingEventArgs e)
{
FailedGamingSuperSkill?.Invoke(sender, e);
}
public void OnBeforeGamingPauseEvent(object sender, GamingEventArgs e)
{
BeforeGamingPause?.Invoke(sender, e);
}
public void OnAfterGamingPauseEvent(object sender, GamingEventArgs e)
{
AfterGamingPause?.Invoke(sender, e);
}
public void OnSucceedGamingPauseEvent(object sender, GamingEventArgs e)
{
SucceedGamingPause?.Invoke(sender, e);
}
public void OnFailedGamingPauseEvent(object sender, GamingEventArgs e)
{
FailedGamingPause?.Invoke(sender, e);
}
public void OnBeforeGamingUnpauseEvent(object sender, GamingEventArgs e)
{
BeforeGamingUnpause?.Invoke(sender, e);
}
public void OnAfterGamingUnpauseEvent(object sender, GamingEventArgs e)
{
AfterGamingUnpause?.Invoke(sender, e);
}
public void OnSucceedGamingUnpauseEvent(object sender, GamingEventArgs e)
{
SucceedGamingUnpause?.Invoke(sender, e);
}
public void OnFailedGamingUnpauseEvent(object sender, GamingEventArgs e)
{
FailedGamingUnpause?.Invoke(sender, e);
}
public void OnBeforeGamingSurrenderEvent(object sender, GamingEventArgs e)
{
BeforeGamingSurrender?.Invoke(sender, e);
}
public void OnAfterGamingSurrenderEvent(object sender, GamingEventArgs e)
{
AfterGamingSurrender?.Invoke(sender, e);
}
public void OnSucceedGamingSurrenderEvent(object sender, GamingEventArgs e)
{
SucceedGamingSurrender?.Invoke(sender, e);
}
public void OnFailedGamingSurrenderEvent(object sender, GamingEventArgs e)
{
FailedGamingSurrender?.Invoke(sender, e);
}
public void OnBeforeGamingUpdateInfoEvent(object sender, GamingEventArgs e)
{
BeforeGamingUpdateInfo?.Invoke(sender, e);
}
public void OnAfterGamingUpdateInfoEvent(object sender, GamingEventArgs e)
{
AfterGamingUpdateInfo?.Invoke(sender, e);
}
public void OnSucceedGamingUpdateInfoEvent(object sender, GamingEventArgs e)
{
SucceedGamingUpdateInfo?.Invoke(sender, e);
}
public void OnFailedGamingUpdateInfoEvent(object sender, GamingEventArgs e)
{
FailedGamingUpdateInfo?.Invoke(sender, e);
}
}
}