添加GamingModel,补充GamingEventHandler (#67)

This commit is contained in:
milimoe 2023-12-07 00:33:29 +08:00 committed by GitHub
parent d90e858d9e
commit 0672d839bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 994 additions and 327 deletions

View File

@ -43,7 +43,6 @@ namespace Milimoe.FunGame.Core.Api.Utility
{
InterfaceType.IClient => InterfaceSet.Type.IClient,
InterfaceType.IServer => InterfaceSet.Type.IServer,
InterfaceType.IGameModeSupported => InterfaceSet.Type.IGameModeSupported,
_ => ""
};
}

View File

@ -125,7 +125,7 @@ namespace Milimoe.FunGame.Core.Controller
}
ConnectArgs.Clear();
ConnectArgs = [ result, msg, servername, notice ];
ConnectArgs = [result, msg, servername, notice];
AfterConnect(ConnectArgs);
// 允许修改数组中的result强行改变连接的结果
@ -293,7 +293,7 @@ namespace Milimoe.FunGame.Core.Controller
{
return _Socket.ReceiveArray();
}
return Array.Empty<SocketObject>();
return [];
}
/// <summary>
@ -371,61 +371,61 @@ namespace Milimoe.FunGame.Core.Controller
}
/// <summary>
/// 客户端接收服务器断开连接的通知后的处理方法
/// 客户端接收服务器断开连接的通知
/// </summary>
/// <param name="ServerMessage"></param>
protected abstract void SocketHandler_Disconnect(SocketObject ServerMessage);
/// <summary>
/// 客户端接收到服务器系统消息后的处理方法
/// 客户端接收并处理服务器系统消息
/// </summary>
/// <param name="ServerMessage"></param>
protected abstract void SocketHandler_System(SocketObject ServerMessage);
/// <summary>
/// 客户端接收到服务器心跳后的处理方法
/// 客户端接收并处理服务器心跳
/// </summary>
/// <param name="ServerMessage"></param>
protected abstract void SocketHandler_HeartBeat(SocketObject ServerMessage);
/// <summary>
/// 客户端接收强制退出登录的通知后的处理方法
/// 客户端接收强制退出登录的通知
/// </summary>
/// <param name="ServerMessage"></param>
protected abstract void SocketHandler_ForceLogout(SocketObject ServerMessage);
/// <summary>
/// 客户端接收到聊天信息后的处理方法
/// 客户端接收并处理聊天信息
/// </summary>
/// <param name="ServerMessage"></param>
protected abstract void SocketHandler_Chat(SocketObject ServerMessage);
/// <summary>
/// 客户端接收到更换房主后的处理方法
/// 客户端接收并处理更换房主信息
/// </summary>
/// <param name="ServerMessage"></param>
protected abstract void SocketHandler_UpdateRoomMaster(SocketObject ServerMessage);
/// <summary>
/// 客户端接收到匹配房间成功后的处理方法
/// 客户端接收并处理匹配房间成功信息
/// </summary>
/// <param name="ServerMessage"></param>
protected abstract void SocketHandler_MatchRoom(SocketObject ServerMessage);
/// <summary>
/// 客户端接收到开始游戏信息后的处理方法
/// 客户端接收并处理开始游戏信息
/// </summary>
/// <param name="ServerMessage"></param>
protected abstract void SocketHandler_StartGame(SocketObject ServerMessage);
/// <summary>
/// 客户端接收到游戏结束信息后的处理方法
/// 客户端接收并处理游戏结束信息
/// </summary>
/// <param name="ServerMessage"></param>
protected abstract void SocketHandler_EndGame(SocketObject ServerMessage);
/// <summary>
/// 客户端接收到局内消息后的处理方法
/// 客户端接收并处理局内消息
/// </summary>
/// <param name="ServerMessage"></param>
protected abstract void SocketHandler_Gaming(SocketObject ServerMessage);

View File

@ -1011,61 +1011,61 @@
</member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_Disconnect(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary>
客户端接收服务器断开连接的通知后的处理方法
客户端接收服务器断开连接的通知
</summary>
<param name="ServerMessage"></param>
</member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_System(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary>
客户端接收到服务器系统消息后的处理方法
客户端接收并处理服务器系统消息
</summary>
<param name="ServerMessage"></param>
</member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_HeartBeat(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary>
客户端接收到服务器心跳后的处理方法
客户端接收并处理服务器心跳
</summary>
<param name="ServerMessage"></param>
</member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_ForceLogout(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary>
客户端接收强制退出登录的通知后的处理方法
客户端接收强制退出登录的通知
</summary>
<param name="ServerMessage"></param>
</member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_Chat(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary>
客户端接收到聊天信息后的处理方法
客户端接收并处理聊天信息
</summary>
<param name="ServerMessage"></param>
</member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_UpdateRoomMaster(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary>
客户端接收到更换房主后的处理方法
客户端接收并处理更换房主信息
</summary>
<param name="ServerMessage"></param>
</member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_MatchRoom(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary>
客户端接收到匹配房间成功后的处理方法
客户端接收并处理匹配房间成功信息
</summary>
<param name="ServerMessage"></param>
</member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_StartGame(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary>
客户端接收到开始游戏信息后的处理方法
客户端接收并处理开始游戏信息
</summary>
<param name="ServerMessage"></param>
</member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_EndGame(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary>
客户端接收到游戏结束信息后的处理方法
客户端接收并处理游戏结束信息
</summary>
<param name="ServerMessage"></param>
</member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_Gaming(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary>
客户端接收到局内消息后的处理方法
客户端接收并处理局内消息
</summary>
<param name="ServerMessage"></param>
</member>
@ -1153,9 +1153,9 @@
这是最基本的接口,要求客户端实现
</summary>
</member>
<member name="T:Milimoe.FunGame.Core.Interface.IGameModeSupported">
<member name="T:Milimoe.FunGame.Core.Interface.IServer">
<summary>
服务端和客户端都应该实现这个接口用于初始化支持的Mod列表
服务器需要实现此接口
</summary>
</member>
<member name="P:Milimoe.FunGame.Core.Library.Common.Addon.CharacterMode.Name">
@ -1984,6 +1984,30 @@
自动登录的秘钥
</summary>
</member>
<member name="T:Milimoe.FunGame.Core.Model.Gaming">
<summary>
游戏局内类
客户端需要使用创建此类单例
</summary>
</member>
<member name="M:Milimoe.FunGame.Core.Model.Gaming.StartGame(Milimoe.FunGame.Core.Library.Common.Addon.GameMode,Milimoe.FunGame.Core.Entity.Room,System.Collections.Generic.List{Milimoe.FunGame.Core.Entity.User})">
<summary>
传入游戏所需的参数构造一个Gaming实例
</summary>
<param name="GameMode"></param>
<param name="Room"></param>
<param name="Users"></param>
<returns></returns>
</member>
<member name="M:Milimoe.FunGame.Core.Model.Gaming.GamingHandler(Milimoe.FunGame.Core.Library.Constant.GamingType,System.Collections.Hashtable)">
<summary>
需在RunTimeController的SocketHandler_Gaming方法中调用此方法
<para>客户端也可以参照此方法自行实现</para>
<para>此方法目的是为了触发 <see cref="T:Milimoe.FunGame.Core.Library.Common.Addon.GameMode"/> 的局内事件实现</para>
</summary>
<param name="GamingType"></param>
<param name="Data"></param>
</member>
<member name="P:Milimoe.FunGame.Core.Model.Session.Server_IP">
<summary>
服务器IP地址

View File

@ -1,8 +1,8 @@
namespace Milimoe.FunGame.Core.Interface
{
public interface IGameMode : IAddon, IGamingConnectEventHandler, IGamingDisconnectEventHandler, IGamingReconnectEventHandler, IGamingBanCharacterEventHandler, IGamingPickCharacterEventHandler,
IGamingRandomEventHandler, IGamingMoveEventHandler, IGamingAttackEventHandler, IGamingSkillEventHandler, IGamingItemEventHandler, IGamingMagicEventHandler, IGamingBuyEventHandler,
IGamingSuperSkillEventHandler, IGamingPauseEventHandler, IGamingUnpauseEventHandler, IGamingSurrenderEventHandler, IGamingUpdateInfoEventHandler
IGamingRandomEventHandler, IGamingRoundEventHandler, IGamingLevelUpEventHandler, IGamingMoveEventHandler, IGamingAttackEventHandler, IGamingSkillEventHandler, IGamingItemEventHandler, IGamingMagicEventHandler,
IGamingBuyEventHandler, IGamingSuperSkillEventHandler, IGamingPauseEventHandler, IGamingUnpauseEventHandler, IGamingSurrenderEventHandler, IGamingUpdateInfoEventHandler, IGamingPunishEventHandler
{
public abstract bool StartUI(params object[] args);
}

View File

@ -1,4 +1,5 @@
using Milimoe.FunGame.Core.Library.Common.Addon;
using System.Collections;
using Milimoe.FunGame.Core.Library.Common.Addon;
using Milimoe.FunGame.Core.Library.Common.Event;
namespace Milimoe.FunGame.Core.Interface
@ -8,10 +9,10 @@ namespace Milimoe.FunGame.Core.Interface
/// </summary>
public interface IGamingEventHandler
{
public delegate void BeforeEventHandler(object sender, GamingEventArgs e);
public delegate void AfterEventHandler(object sender, GamingEventArgs e);
public delegate void SucceedEventHandler(object sender, GamingEventArgs e);
public delegate void FailedEventHandler(object sender, GamingEventArgs e);
public delegate void BeforeEventHandler(object sender, GamingEventArgs e, Hashtable data);
public delegate void AfterEventHandler(object sender, GamingEventArgs e, Hashtable data);
public delegate void SucceedEventHandler(object sender, GamingEventArgs e, Hashtable data);
public delegate void FailedEventHandler(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingConnectEventHandler : IGamingEventHandler
@ -21,10 +22,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingConnect;
public event FailedEventHandler? FailedGamingConnect;
public void OnBeforeGamingConnectEvent(object sender, GamingEventArgs e);
public void OnAfterGamingConnectEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingConnectEvent(object sender, GamingEventArgs e);
public void OnFailedGamingConnectEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingDisconnectEventHandler : IGamingEventHandler
@ -34,10 +35,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingDisconnect;
public event FailedEventHandler? FailedGamingDisconnect;
public void OnBeforeGamingDisconnectEvent(object sender, GamingEventArgs e);
public void OnAfterGamingDisconnectEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingDisconnectEvent(object sender, GamingEventArgs e);
public void OnFailedGamingDisconnectEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingReconnectEventHandler : IGamingEventHandler
@ -47,10 +48,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingReconnect;
public event FailedEventHandler? FailedGamingReconnect;
public void OnBeforeGamingReconnectEvent(object sender, GamingEventArgs e);
public void OnAfterGamingReconnectEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingReconnectEvent(object sender, GamingEventArgs e);
public void OnFailedGamingReconnectEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingBanCharacterEventHandler : IGamingEventHandler
@ -60,10 +61,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingBanCharacter;
public event FailedEventHandler? FailedGamingBanCharacter;
public void OnBeforeGamingBanCharacterEvent(object sender, GamingEventArgs e);
public void OnAfterGamingBanCharacterEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingBanCharacterEvent(object sender, GamingEventArgs e);
public void OnFailedGamingBanCharacterEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingPickCharacterEventHandler : IGamingEventHandler
@ -73,10 +74,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingPickCharacter;
public event FailedEventHandler? FailedGamingPickCharacter;
public void OnBeforeGamingPickCharacterEvent(object sender, GamingEventArgs e);
public void OnAfterGamingPickCharacterEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingPickCharacterEvent(object sender, GamingEventArgs e);
public void OnFailedGamingPickCharacterEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingRandomEventHandler : IGamingEventHandler
@ -86,10 +87,36 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingRandom;
public event FailedEventHandler? FailedGamingRandom;
public void OnBeforeGamingRandomEvent(object sender, GamingEventArgs e);
public void OnAfterGamingRandomEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingRandomEvent(object sender, GamingEventArgs e);
public void OnFailedGamingRandomEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingRoundEventHandler : IGamingEventHandler
{
public event BeforeEventHandler? BeforeGamingRound;
public event AfterEventHandler? AfterGamingRound;
public event SucceedEventHandler? SucceedGamingRound;
public event FailedEventHandler? FailedGamingRound;
public void OnBeforeGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingLevelUpEventHandler : IGamingEventHandler
{
public event BeforeEventHandler? BeforeGamingLevelUp;
public event AfterEventHandler? AfterGamingLevelUp;
public event SucceedEventHandler? SucceedGamingLevelUp;
public event FailedEventHandler? FailedGamingLevelUp;
public void OnBeforeGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingMoveEventHandler : IGamingEventHandler
@ -99,10 +126,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingMove;
public event FailedEventHandler? FailedGamingMove;
public void OnBeforeGamingMoveEvent(object sender, GamingEventArgs e);
public void OnAfterGamingMoveEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingMoveEvent(object sender, GamingEventArgs e);
public void OnFailedGamingMoveEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingAttackEventHandler : IGamingEventHandler
@ -112,10 +139,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingAttack;
public event FailedEventHandler? FailedGamingAttack;
public void OnBeforeGamingAttackEvent(object sender, GamingEventArgs e);
public void OnAfterGamingAttackEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingAttackEvent(object sender, GamingEventArgs e);
public void OnFailedGamingAttackEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingSkillEventHandler : IGamingEventHandler
@ -125,10 +152,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingSkill;
public event FailedEventHandler? FailedGamingSkill;
public void OnBeforeGamingSkillEvent(object sender, GamingEventArgs e);
public void OnAfterGamingSkillEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingSkillEvent(object sender, GamingEventArgs e);
public void OnFailedGamingSkillEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingItemEventHandler : IGamingEventHandler
@ -138,10 +165,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingItem;
public event FailedEventHandler? FailedGamingItem;
public void OnBeforeGamingItemEvent(object sender, GamingEventArgs e);
public void OnAfterGamingItemEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingItemEvent(object sender, GamingEventArgs e);
public void OnFailedGamingItemEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingMagicEventHandler : IGamingEventHandler
@ -151,10 +178,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingMagic;
public event FailedEventHandler? FailedGamingMagic;
public void OnBeforeGamingMagicEvent(object sender, GamingEventArgs e);
public void OnAfterGamingMagicEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingMagicEvent(object sender, GamingEventArgs e);
public void OnFailedGamingMagicEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingBuyEventHandler : IGamingEventHandler
@ -164,10 +191,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingBuy;
public event FailedEventHandler? FailedGamingBuy;
public void OnBeforeGamingBuyEvent(object sender, GamingEventArgs e);
public void OnAfterGamingBuyEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingBuyEvent(object sender, GamingEventArgs e);
public void OnFailedGamingBuyEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingSuperSkillEventHandler : IGamingEventHandler
@ -177,10 +204,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingSuperSkill;
public event FailedEventHandler? FailedGamingSuperSkill;
public void OnBeforeGamingSuperSkillEvent(object sender, GamingEventArgs e);
public void OnAfterGamingSuperSkillEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingSuperSkillEvent(object sender, GamingEventArgs e);
public void OnFailedGamingSuperSkillEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingPauseEventHandler : IGamingEventHandler
@ -190,10 +217,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingPause;
public event FailedEventHandler? FailedGamingPause;
public void OnBeforeGamingPauseEvent(object sender, GamingEventArgs e);
public void OnAfterGamingPauseEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingPauseEvent(object sender, GamingEventArgs e);
public void OnFailedGamingPauseEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingUnpauseEventHandler : IGamingEventHandler
@ -203,10 +230,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingUnpause;
public event FailedEventHandler? FailedGamingUnpause;
public void OnBeforeGamingUnpauseEvent(object sender, GamingEventArgs e);
public void OnAfterGamingUnpauseEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingUnpauseEvent(object sender, GamingEventArgs e);
public void OnFailedGamingUnpauseEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingSurrenderEventHandler : IGamingEventHandler
@ -216,10 +243,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingSurrender;
public event FailedEventHandler? FailedGamingSurrender;
public void OnBeforeGamingSurrenderEvent(object sender, GamingEventArgs e);
public void OnAfterGamingSurrenderEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingSurrenderEvent(object sender, GamingEventArgs e);
public void OnFailedGamingSurrenderEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingUpdateInfoEventHandler : IGamingEventHandler
@ -229,9 +256,22 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingUpdateInfo;
public event FailedEventHandler? FailedGamingUpdateInfo;
public void OnBeforeGamingUpdateInfoEvent(object sender, GamingEventArgs e);
public void OnAfterGamingUpdateInfoEvent(object sender, GamingEventArgs e);
public void OnSucceedGamingUpdateInfoEvent(object sender, GamingEventArgs e);
public void OnFailedGamingUpdateInfoEvent(object sender, GamingEventArgs e);
public void OnBeforeGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingPunishEventHandler : IGamingEventHandler
{
public event BeforeEventHandler? BeforeGamingPunish;
public event AfterEventHandler? AfterGamingPunish;
public event SucceedEventHandler? SucceedGamingPunish;
public event FailedEventHandler? FailedGamingPunish;
public void OnBeforeGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data);
}
}

View File

@ -1,141 +1,166 @@
using Milimoe.FunGame.Core.Library.Common.Event;
using System.Collections;
using Milimoe.FunGame.Core.Library.Common.Event;
// 模组需要实现什么事件就继承什么接口
namespace Milimoe.FunGame.Core.Interface
{
public interface IGamingConnectEvent
{
public void BeforeGamingConnectEvent(object sender, GamingEventArgs e);
public void AfterGamingConnectEvent(object sender, GamingEventArgs e);
public void SucceedGamingConnectEvent(object sender, GamingEventArgs e);
public void FailedGamingConnectEvent(object sender, GamingEventArgs e);
public void BeforeGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingDisconnectEvent
{
public void BeforeGamingDisconnectEvent(object sender, GamingEventArgs e);
public void AfterGamingDisconnectEvent(object sender, GamingEventArgs e);
public void SucceedGamingDisconnectEvent(object sender, GamingEventArgs e);
public void FailedGamingDisconnectEvent(object sender, GamingEventArgs e);
public void BeforeGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingReconnectEvent
{
public void BeforeGamingReconnectEvent(object sender, GamingEventArgs e);
public void AfterGamingReconnectEvent(object sender, GamingEventArgs e);
public void SucceedGamingReconnectEvent(object sender, GamingEventArgs e);
public void FailedGamingReconnectEvent(object sender, GamingEventArgs e);
public void BeforeGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingBanCharacterEvent
{
public void BeforeGamingBanCharacterEvent(object sender, GamingEventArgs e);
public void AfterGamingBanCharacterEvent(object sender, GamingEventArgs e);
public void SucceedGamingBanCharacterEvent(object sender, GamingEventArgs e);
public void FailedGamingBanCharacterEvent(object sender, GamingEventArgs e);
public void BeforeGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingPickCharacterEvent
{
public void BeforeGamingPickCharacterEvent(object sender, GamingEventArgs e);
public void AfterGamingPickCharacterEvent(object sender, GamingEventArgs e);
public void SucceedGamingPickCharacterEvent(object sender, GamingEventArgs e);
public void FailedGamingPickCharacterEvent(object sender, GamingEventArgs e);
public void BeforeGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingRandomEvent
{
public void BeforeGamingRandomEvent(object sender, GamingEventArgs e);
public void AfterGamingRandomEvent(object sender, GamingEventArgs e);
public void SucceedGamingRandomEvent(object sender, GamingEventArgs e);
public void FailedGamingRandomEvent(object sender, GamingEventArgs e);
public void BeforeGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingLevelUpEvent
{
public void BeforeGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingRoundEvent
{
public void BeforeGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingMoveEvent
{
public void BeforeGamingMoveEvent(object sender, GamingEventArgs e);
public void AfterGamingMoveEvent(object sender, GamingEventArgs e);
public void SucceedGamingMoveEvent(object sender, GamingEventArgs e);
public void FailedGamingMoveEvent(object sender, GamingEventArgs e);
public void BeforeGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingAttackEvent
{
public void BeforeGamingAttackEvent(object sender, GamingEventArgs e);
public void AfterGamingAttackEvent(object sender, GamingEventArgs e);
public void SucceedGamingAttackEvent(object sender, GamingEventArgs e);
public void FailedGamingAttackEvent(object sender, GamingEventArgs e);
public void BeforeGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingSkillEvent
{
public void BeforeGamingSkillEvent(object sender, GamingEventArgs e);
public void AfterGamingSkillEvent(object sender, GamingEventArgs e);
public void SucceedGamingSkillEvent(object sender, GamingEventArgs e);
public void FailedGamingSkillEvent(object sender, GamingEventArgs e);
public void BeforeGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingItemEvent
{
public void BeforeGamingItemEvent(object sender, GamingEventArgs e);
public void AfterGamingItemEvent(object sender, GamingEventArgs e);
public void SucceedGamingItemEvent(object sender, GamingEventArgs e);
public void FailedGamingItemEvent(object sender, GamingEventArgs e);
public void BeforeGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingMagicEvent
{
public void BeforeGamingMagicEvent(object sender, GamingEventArgs e);
public void AfterGamingMagicEvent(object sender, GamingEventArgs e);
public void SucceedGamingMagicEvent(object sender, GamingEventArgs e);
public void FailedGamingMagicEvent(object sender, GamingEventArgs e);
public void BeforeGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingBuyEvent
{
public void BeforeGamingBuyEvent(object sender, GamingEventArgs e);
public void AfterGamingBuyEvent(object sender, GamingEventArgs e);
public void SucceedGamingBuyEvent(object sender, GamingEventArgs e);
public void FailedGamingBuyEvent(object sender, GamingEventArgs e);
public void BeforeGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingSuperSkillEvent
{
public void BeforeGamingSuperSkillEvent(object sender, GamingEventArgs e);
public void AfterGamingSuperSkillEvent(object sender, GamingEventArgs e);
public void SucceedGamingSuperSkillEvent(object sender, GamingEventArgs e);
public void FailedGamingSuperSkillEvent(object sender, GamingEventArgs e);
public void BeforeGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingPauseEvent
{
public void BeforeGamingPauseEvent(object sender, GamingEventArgs e);
public void AfterGamingPauseEvent(object sender, GamingEventArgs e);
public void SucceedGamingPauseEvent(object sender, GamingEventArgs e);
public void FailedGamingPauseEvent(object sender, GamingEventArgs e);
public void BeforeGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingUnpauseEvent
{
public void BeforeGamingUnpauseEvent(object sender, GamingEventArgs e);
public void AfterGamingUnpauseEvent(object sender, GamingEventArgs e);
public void SucceedGamingUnpauseEvent(object sender, GamingEventArgs e);
public void FailedGamingUnpauseEvent(object sender, GamingEventArgs e);
public void BeforeGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingSurrenderEvent
{
public void BeforeGamingSurrenderEvent(object sender, GamingEventArgs e);
public void AfterGamingSurrenderEvent(object sender, GamingEventArgs e);
public void SucceedGamingSurrenderEvent(object sender, GamingEventArgs e);
public void FailedGamingSurrenderEvent(object sender, GamingEventArgs e);
public void BeforeGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingUpdateInfoEvent
{
public void BeforeGamingUpdateInfoEvent(object sender, GamingEventArgs e);
public void AfterGamingUpdateInfoEvent(object sender, GamingEventArgs e);
public void SucceedGamingUpdateInfoEvent(object sender, GamingEventArgs e);
public void FailedGamingUpdateInfoEvent(object sender, GamingEventArgs e);
public void BeforeGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
}
public interface IGamingPunishEvent
{
public void BeforeGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data);
}
}

View File

@ -1,11 +0,0 @@
namespace Milimoe.FunGame.Core.Interface
{
/// <summary>
/// 服务端和客户端都应该实现这个接口用于初始化支持的Mod列表
/// </summary>
public interface IGameModeSupported
{
public string[] GameModeList { get; }
public string[] GameMapList { get; }
}
}

View File

@ -1,7 +1,11 @@
namespace Milimoe.FunGame.Core.Interface
{
/// <summary>
/// 服务器需要实现此接口
/// </summary>
public interface IServer
{
public string[] GameModeList { get; }
public string[] GameMapList { get; }
}
}

View File

@ -1,4 +1,5 @@
using Milimoe.FunGame.Core.Api.Transmittal;
using System.Collections;
using Milimoe.FunGame.Core.Api.Transmittal;
using Milimoe.FunGame.Core.Interface;
using Milimoe.FunGame.Core.Library.Common.Event;
using Milimoe.FunGame.Core.Library.Constant;
@ -191,6 +192,24 @@ namespace Milimoe.FunGame.Core.Library.Common.Addon
FailedGamingRandom += bind.FailedGamingRandomEvent;
}
if (this is IGamingRoundEvent)
{
IGamingRoundEvent bind = (IGamingRoundEvent)this;
BeforeGamingRound += bind.BeforeGamingRoundEvent;
AfterGamingRound += bind.AfterGamingRoundEvent;
SucceedGamingRound += bind.SucceedGamingRoundEvent;
FailedGamingRound += bind.FailedGamingRoundEvent;
}
if (this is IGamingLevelUpEvent)
{
IGamingLevelUpEvent bind = (IGamingLevelUpEvent)this;
BeforeGamingLevelUp += bind.BeforeGamingLevelUpEvent;
AfterGamingLevelUp += bind.AfterGamingLevelUpEvent;
SucceedGamingLevelUp += bind.SucceedGamingLevelUpEvent;
FailedGamingLevelUp += bind.FailedGamingLevelUpEvent;
}
if (this is IGamingMoveEvent)
{
IGamingMoveEvent bind = (IGamingMoveEvent)this;
@ -289,6 +308,15 @@ namespace Milimoe.FunGame.Core.Library.Common.Addon
SucceedGamingUpdateInfo += bind.SucceedGamingUpdateInfoEvent;
FailedGamingUpdateInfo += bind.FailedGamingUpdateInfoEvent;
}
if (this is IGamingPunishEvent)
{
IGamingPunishEvent bind = (IGamingPunishEvent)this;
BeforeGamingPunish += bind.BeforeGamingPunishEvent;
AfterGamingPunish += bind.AfterGamingPunishEvent;
SucceedGamingPunish += bind.SucceedGamingPunishEvent;
FailedGamingPunish += bind.FailedGamingPunishEvent;
}
}
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingConnect;
@ -315,6 +343,14 @@ namespace Milimoe.FunGame.Core.Library.Common.Addon
public event IGamingEventHandler.AfterEventHandler? AfterGamingRandom;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingRandom;
public event IGamingEventHandler.FailedEventHandler? FailedGamingRandom;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingRound;
public event IGamingEventHandler.AfterEventHandler? AfterGamingRound;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingRound;
public event IGamingEventHandler.FailedEventHandler? FailedGamingRound;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingLevelUp;
public event IGamingEventHandler.AfterEventHandler? AfterGamingLevelUp;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingLevelUp;
public event IGamingEventHandler.FailedEventHandler? FailedGamingLevelUp;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingMove;
public event IGamingEventHandler.AfterEventHandler? AfterGamingMove;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingMove;
@ -359,345 +395,409 @@ namespace Milimoe.FunGame.Core.Library.Common.Addon
public event IGamingEventHandler.AfterEventHandler? AfterGamingUpdateInfo;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingUpdateInfo;
public event IGamingEventHandler.FailedEventHandler? FailedGamingUpdateInfo;
public event IGamingEventHandler.BeforeEventHandler? BeforeGamingPunish;
public event IGamingEventHandler.AfterEventHandler? AfterGamingPunish;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingPunish;
public event IGamingEventHandler.FailedEventHandler? FailedGamingPunish;
public void OnBeforeGamingConnectEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingConnect?.Invoke(sender, e);
BeforeGamingConnect?.Invoke(sender, e, data);
}
public void OnAfterGamingConnectEvent(object sender, GamingEventArgs e)
public void OnAfterGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingConnect?.Invoke(sender, e);
AfterGamingConnect?.Invoke(sender, e, data);
}
public void OnSucceedGamingConnectEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingConnect?.Invoke(sender, e);
SucceedGamingConnect?.Invoke(sender, e, data);
}
public void OnFailedGamingConnectEvent(object sender, GamingEventArgs e)
public void OnFailedGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingConnect?.Invoke(sender, e);
FailedGamingConnect?.Invoke(sender, e, data);
}
public void OnBeforeGamingDisconnectEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingDisconnect?.Invoke(sender, e);
BeforeGamingDisconnect?.Invoke(sender, e, data);
}
public void OnAfterGamingDisconnectEvent(object sender, GamingEventArgs e)
public void OnAfterGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingDisconnect?.Invoke(sender, e);
AfterGamingDisconnect?.Invoke(sender, e, data);
}
public void OnSucceedGamingDisconnectEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingDisconnect?.Invoke(sender, e);
SucceedGamingDisconnect?.Invoke(sender, e, data);
}
public void OnFailedGamingDisconnectEvent(object sender, GamingEventArgs e)
public void OnFailedGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingDisconnect?.Invoke(sender, e);
FailedGamingDisconnect?.Invoke(sender, e, data);
}
public void OnBeforeGamingReconnectEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingReconnect?.Invoke(sender, e);
BeforeGamingReconnect?.Invoke(sender, e, data);
}
public void OnAfterGamingReconnectEvent(object sender, GamingEventArgs e)
public void OnAfterGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingReconnect?.Invoke(sender, e);
AfterGamingReconnect?.Invoke(sender, e, data);
}
public void OnSucceedGamingReconnectEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingReconnect?.Invoke(sender, e);
SucceedGamingReconnect?.Invoke(sender, e, data);
}
public void OnFailedGamingReconnectEvent(object sender, GamingEventArgs e)
public void OnFailedGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingReconnect?.Invoke(sender, e);
FailedGamingReconnect?.Invoke(sender, e, data);
}
public void OnBeforeGamingBanCharacterEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingBanCharacter?.Invoke(sender, e);
BeforeGamingBanCharacter?.Invoke(sender, e, data);
}
public void OnAfterGamingBanCharacterEvent(object sender, GamingEventArgs e)
public void OnAfterGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingBanCharacter?.Invoke(sender, e);
AfterGamingBanCharacter?.Invoke(sender, e, data);
}
public void OnSucceedGamingBanCharacterEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingBanCharacter?.Invoke(sender, e);
SucceedGamingBanCharacter?.Invoke(sender, e, data);
}
public void OnFailedGamingBanCharacterEvent(object sender, GamingEventArgs e)
public void OnFailedGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingBanCharacter?.Invoke(sender, e);
FailedGamingBanCharacter?.Invoke(sender, e, data);
}
public void OnBeforeGamingPickCharacterEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingPickCharacter?.Invoke(sender, e);
BeforeGamingPickCharacter?.Invoke(sender, e, data);
}
public void OnAfterGamingPickCharacterEvent(object sender, GamingEventArgs e)
public void OnAfterGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingPickCharacter?.Invoke(sender, e);
AfterGamingPickCharacter?.Invoke(sender, e, data);
}
public void OnSucceedGamingPickCharacterEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingPickCharacter?.Invoke(sender, e);
SucceedGamingPickCharacter?.Invoke(sender, e, data);
}
public void OnFailedGamingPickCharacterEvent(object sender, GamingEventArgs e)
public void OnFailedGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingPickCharacter?.Invoke(sender, e);
FailedGamingPickCharacter?.Invoke(sender, e, data);
}
public void OnBeforeGamingRandomEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingRandom?.Invoke(sender, e);
BeforeGamingRandom?.Invoke(sender, e, data);
}
public void OnAfterGamingRandomEvent(object sender, GamingEventArgs e)
public void OnAfterGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingRandom?.Invoke(sender, e);
AfterGamingRandom?.Invoke(sender, e, data);
}
public void OnSucceedGamingRandomEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingRandom?.Invoke(sender, e);
SucceedGamingRandom?.Invoke(sender, e, data);
}
public void OnFailedGamingRandomEvent(object sender, GamingEventArgs e)
public void OnFailedGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingRandom?.Invoke(sender, e);
FailedGamingRandom?.Invoke(sender, e, data);
}
public void OnBeforeGamingMoveEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingMove?.Invoke(sender, e);
BeforeGamingRound?.Invoke(sender, e, data);
}
public void OnAfterGamingMoveEvent(object sender, GamingEventArgs e)
public void OnAfterGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingMove?.Invoke(sender, e);
AfterGamingRound?.Invoke(sender, e, data);
}
public void OnSucceedGamingMoveEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingMove?.Invoke(sender, e);
SucceedGamingRound?.Invoke(sender, e, data);
}
public void OnFailedGamingMoveEvent(object sender, GamingEventArgs e)
public void OnFailedGamingRoundEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingMove?.Invoke(sender, e);
FailedGamingRound?.Invoke(sender, e, data);
}
public void OnBeforeGamingAttackEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingAttack?.Invoke(sender, e);
BeforeGamingLevelUp?.Invoke(sender, e, data);
}
public void OnAfterGamingAttackEvent(object sender, GamingEventArgs e)
public void OnAfterGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingAttack?.Invoke(sender, e);
AfterGamingLevelUp?.Invoke(sender, e, data);
}
public void OnSucceedGamingAttackEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingAttack?.Invoke(sender, e);
SucceedGamingLevelUp?.Invoke(sender, e, data);
}
public void OnFailedGamingAttackEvent(object sender, GamingEventArgs e)
public void OnFailedGamingLevelUpEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingAttack?.Invoke(sender, e);
FailedGamingLevelUp?.Invoke(sender, e, data);
}
public void OnBeforeGamingSkillEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingSkill?.Invoke(sender, e);
BeforeGamingMove?.Invoke(sender, e, data);
}
public void OnAfterGamingSkillEvent(object sender, GamingEventArgs e)
public void OnAfterGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingSkill?.Invoke(sender, e);
AfterGamingMove?.Invoke(sender, e, data);
}
public void OnSucceedGamingSkillEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingSkill?.Invoke(sender, e);
SucceedGamingMove?.Invoke(sender, e, data);
}
public void OnFailedGamingSkillEvent(object sender, GamingEventArgs e)
public void OnFailedGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingSkill?.Invoke(sender, e);
FailedGamingMove?.Invoke(sender, e, data);
}
public void OnBeforeGamingItemEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingItem?.Invoke(sender, e);
BeforeGamingAttack?.Invoke(sender, e, data);
}
public void OnAfterGamingItemEvent(object sender, GamingEventArgs e)
public void OnAfterGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingItem?.Invoke(sender, e);
AfterGamingAttack?.Invoke(sender, e, data);
}
public void OnSucceedGamingItemEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingItem?.Invoke(sender, e);
SucceedGamingAttack?.Invoke(sender, e, data);
}
public void OnFailedGamingItemEvent(object sender, GamingEventArgs e)
public void OnFailedGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingItem?.Invoke(sender, e);
FailedGamingAttack?.Invoke(sender, e, data);
}
public void OnBeforeGamingMagicEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingMagic?.Invoke(sender, e);
BeforeGamingSkill?.Invoke(sender, e, data);
}
public void OnAfterGamingMagicEvent(object sender, GamingEventArgs e)
public void OnAfterGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingMagic?.Invoke(sender, e);
AfterGamingSkill?.Invoke(sender, e, data);
}
public void OnSucceedGamingMagicEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingMagic?.Invoke(sender, e);
SucceedGamingSkill?.Invoke(sender, e, data);
}
public void OnFailedGamingMagicEvent(object sender, GamingEventArgs e)
public void OnFailedGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingMagic?.Invoke(sender, e);
FailedGamingSkill?.Invoke(sender, e, data);
}
public void OnBeforeGamingBuyEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingItemEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingBuy?.Invoke(sender, e);
BeforeGamingItem?.Invoke(sender, e, data);
}
public void OnAfterGamingBuyEvent(object sender, GamingEventArgs e)
public void OnAfterGamingItemEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingBuy?.Invoke(sender, e);
AfterGamingItem?.Invoke(sender, e, data);
}
public void OnSucceedGamingBuyEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingItemEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingBuy?.Invoke(sender, e);
SucceedGamingItem?.Invoke(sender, e, data);
}
public void OnFailedGamingBuyEvent(object sender, GamingEventArgs e)
public void OnFailedGamingItemEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingBuy?.Invoke(sender, e);
FailedGamingItem?.Invoke(sender, e, data);
}
public void OnBeforeGamingSuperSkillEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingSuperSkill?.Invoke(sender, e);
BeforeGamingMagic?.Invoke(sender, e, data);
}
public void OnAfterGamingSuperSkillEvent(object sender, GamingEventArgs e)
public void OnAfterGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingSuperSkill?.Invoke(sender, e);
AfterGamingMagic?.Invoke(sender, e, data);
}
public void OnSucceedGamingSuperSkillEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingSuperSkill?.Invoke(sender, e);
SucceedGamingMagic?.Invoke(sender, e, data);
}
public void OnFailedGamingSuperSkillEvent(object sender, GamingEventArgs e)
public void OnFailedGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingSuperSkill?.Invoke(sender, e);
FailedGamingMagic?.Invoke(sender, e, data);
}
public void OnBeforeGamingPauseEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingPause?.Invoke(sender, e);
BeforeGamingBuy?.Invoke(sender, e, data);
}
public void OnAfterGamingPauseEvent(object sender, GamingEventArgs e)
public void OnAfterGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingPause?.Invoke(sender, e);
AfterGamingBuy?.Invoke(sender, e, data);
}
public void OnSucceedGamingPauseEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingPause?.Invoke(sender, e);
SucceedGamingBuy?.Invoke(sender, e, data);
}
public void OnFailedGamingPauseEvent(object sender, GamingEventArgs e)
public void OnFailedGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingPause?.Invoke(sender, e);
FailedGamingBuy?.Invoke(sender, e, data);
}
public void OnBeforeGamingUnpauseEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingUnpause?.Invoke(sender, e);
BeforeGamingSuperSkill?.Invoke(sender, e, data);
}
public void OnAfterGamingUnpauseEvent(object sender, GamingEventArgs e)
public void OnAfterGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingUnpause?.Invoke(sender, e);
AfterGamingSuperSkill?.Invoke(sender, e, data);
}
public void OnSucceedGamingUnpauseEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingUnpause?.Invoke(sender, e);
SucceedGamingSuperSkill?.Invoke(sender, e, data);
}
public void OnFailedGamingUnpauseEvent(object sender, GamingEventArgs e)
public void OnFailedGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingUnpause?.Invoke(sender, e);
FailedGamingSuperSkill?.Invoke(sender, e, data);
}
public void OnBeforeGamingSurrenderEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingSurrender?.Invoke(sender, e);
BeforeGamingPause?.Invoke(sender, e, data);
}
public void OnAfterGamingSurrenderEvent(object sender, GamingEventArgs e)
public void OnAfterGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingSurrender?.Invoke(sender, e);
AfterGamingPause?.Invoke(sender, e, data);
}
public void OnSucceedGamingSurrenderEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingSurrender?.Invoke(sender, e);
SucceedGamingPause?.Invoke(sender, e, data);
}
public void OnFailedGamingSurrenderEvent(object sender, GamingEventArgs e)
public void OnFailedGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingSurrender?.Invoke(sender, e);
FailedGamingPause?.Invoke(sender, e, data);
}
public void OnBeforeGamingUpdateInfoEvent(object sender, GamingEventArgs e)
public void OnBeforeGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingUpdateInfo?.Invoke(sender, e);
BeforeGamingUnpause?.Invoke(sender, e, data);
}
public void OnAfterGamingUpdateInfoEvent(object sender, GamingEventArgs e)
public void OnAfterGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingUpdateInfo?.Invoke(sender, e);
AfterGamingUnpause?.Invoke(sender, e, data);
}
public void OnSucceedGamingUpdateInfoEvent(object sender, GamingEventArgs e)
public void OnSucceedGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingUpdateInfo?.Invoke(sender, e);
SucceedGamingUnpause?.Invoke(sender, e, data);
}
public void OnFailedGamingUpdateInfoEvent(object sender, GamingEventArgs e)
public void OnFailedGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingUpdateInfo?.Invoke(sender, e);
FailedGamingUnpause?.Invoke(sender, e, data);
}
public void OnBeforeGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingSurrender?.Invoke(sender, e, data);
}
public void OnAfterGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingSurrender?.Invoke(sender, e, data);
}
public void OnSucceedGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingSurrender?.Invoke(sender, e, data);
}
public void OnFailedGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingSurrender?.Invoke(sender, e, data);
}
public void OnBeforeGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingUpdateInfo?.Invoke(sender, e, data);
}
public void OnAfterGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingUpdateInfo?.Invoke(sender, e, data);
}
public void OnSucceedGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingUpdateInfo?.Invoke(sender, e, data);
}
public void OnFailedGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingUpdateInfo?.Invoke(sender, e, data);
}
public void OnBeforeGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data)
{
BeforeGamingPunish?.Invoke(sender, e, data);
}
public void OnAfterGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data)
{
AfterGamingPunish?.Invoke(sender, e, data);
}
public void OnSucceedGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data)
{
SucceedGamingPunish?.Invoke(sender, e, data);
}
public void OnFailedGamingPunishEvent(object sender, GamingEventArgs e, Hashtable data)
{
FailedGamingPunish?.Invoke(sender, e, data);
}
}
}

View File

@ -12,7 +12,6 @@ namespace Milimoe.FunGame.Core.Library.Constant
{
public const string IClient = "IClientImpl";
public const string IServer = "IServerImpl";
public const string IGameModeSupported = "IGameModeSupported";
}
public class Method
@ -175,6 +174,7 @@ namespace Milimoe.FunGame.Core.Library.Constant
public const string Unpause = "Gaming::Unpause";
public const string Surrender = "Gaming::Surrender";
public const string UpdateInfo = "Gaming::UpdateInfo";
public const string Punish = "Gaming::Punish";
/// <summary>
/// 获取Type的等效字符串
@ -204,6 +204,7 @@ namespace Milimoe.FunGame.Core.Library.Constant
GamingType.Unpause => Unpause,
GamingType.Surrender => Surrender,
GamingType.UpdateInfo => UpdateInfo,
GamingType.Punish => Punish,
_ => None
};
}

View File

@ -27,8 +27,7 @@ namespace Milimoe.FunGame.Core.Library.Constant
public enum InterfaceType
{
IClient,
IServer,
IGameModeSupported
IServer
}
/// <summary>
@ -104,7 +103,7 @@ namespace Milimoe.FunGame.Core.Library.Constant
Room_GetRoomSettings,
Room_GetRoomPlayerCount,
Room_UpdateRoomMaster,
Gaming,
Gaming
}
/// <summary>

486
Model/Gaming.cs Normal file
View File

@ -0,0 +1,486 @@
using System.Collections;
using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Common.Addon;
using Milimoe.FunGame.Core.Library.Common.Event;
using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Model
{
/// <summary>
/// 游戏局内类
/// 客户端需要使用创建此类单例
/// </summary>
public class Gaming
{
private readonly GameMode GameMode;
private readonly Room Room;
private readonly List<User> Users;
private readonly List<Character> Characters;
private readonly GamingEventArgs EventArgs;
private Gaming(GameMode GameMode, Room Room, List<User> Users)
{
this.GameMode = GameMode;
this.Room = Room;
this.Users = Users;
Characters = [];
EventArgs = new(Room, Users, Characters);
}
/// <summary>
/// 传入游戏所需的参数构造一个Gaming实例
/// </summary>
/// <param name="GameMode"></param>
/// <param name="Room"></param>
/// <param name="Users"></param>
/// <returns></returns>
public static Gaming StartGame(GameMode GameMode, Room Room, List<User> Users)
{
Gaming instance = new(GameMode, Room, Users);
// 新建线程来启动模组的界面
TaskUtility.NewTask(() =>
{
GameMode.StartUI(instance.EventArgs);
});
return instance;
}
/// <summary>
/// 需在RunTimeController的SocketHandler_Gaming方法中调用此方法
/// <para>客户端也可以参照此方法自行实现</para>
/// <para>此方法目的是为了触发 <see cref="Library.Common.Addon.GameMode"/> 的局内事件实现</para>
/// </summary>
/// <param name="GamingType"></param>
/// <param name="Data"></param>
public void GamingHandler(GamingType GamingType, Hashtable Data)
{
switch (GamingType)
{
case GamingType.Connect:
Connect(Data);
break;
case GamingType.Disconnect:
Disconnect(Data);
break;
case GamingType.Reconnect:
Reconnect(Data);
break;
case GamingType.BanCharacter:
BanCharacter(Data);
break;
case GamingType.PickCharacter:
PickCharacter(Data);
break;
case GamingType.Random:
Random(Data);
break;
case GamingType.Round:
Round(Data);
break;
case GamingType.LevelUp:
LevelUp(Data);
break;
case GamingType.Move:
Move(Data);
break;
case GamingType.Attack:
Attack(Data);
break;
case GamingType.Skill:
Skill(Data);
break;
case GamingType.Item:
Item(Data);
break;
case GamingType.Magic:
Magic(Data);
break;
case GamingType.Buy:
Buy(Data);
break;
case GamingType.SuperSkill:
SuperSkill(Data);
break;
case GamingType.Pause:
Pause(Data);
break;
case GamingType.Unpause:
Unpause(Data);
break;
case GamingType.Surrender:
Surrender(Data);
break;
case GamingType.UpdateInfo:
UpdateInfo(Data);
break;
case GamingType.Punish:
Punish(Data);
break;
case GamingType.None:
default:
break;
}
}
private void Connect(Hashtable data)
{
GameMode.OnBeforeGamingConnectEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingConnectEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingConnectEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingConnectEvent(this, EventArgs, data);
}
private void Disconnect(Hashtable data)
{
GameMode.OnBeforeGamingDisconnectEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingDisconnectEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingDisconnectEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingDisconnectEvent(this, EventArgs, data);
}
private void Reconnect(Hashtable data)
{
GameMode.OnBeforeGamingReconnectEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingReconnectEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingReconnectEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingReconnectEvent(this, EventArgs, data);
}
private void BanCharacter(Hashtable data)
{
GameMode.OnBeforeGamingBanCharacterEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingBanCharacterEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingBanCharacterEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingBanCharacterEvent(this, EventArgs, data);
}
private void PickCharacter(Hashtable data)
{
GameMode.OnBeforeGamingPickCharacterEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingPickCharacterEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingPickCharacterEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingPickCharacterEvent(this, EventArgs, data);
}
private void Random(Hashtable data)
{
GameMode.OnBeforeGamingRandomEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingRandomEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingRandomEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingRandomEvent(this, EventArgs, data);
}
private void Round(Hashtable data)
{
GameMode.OnBeforeGamingRoundEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingRoundEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingRoundEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingRoundEvent(this, EventArgs, data);
}
private void LevelUp(Hashtable data)
{
GameMode.OnBeforeGamingLevelUpEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingLevelUpEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingLevelUpEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingLevelUpEvent(this, EventArgs, data);
}
private void Move(Hashtable data)
{
GameMode.OnBeforeGamingMoveEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingMoveEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingMoveEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingMoveEvent(this, EventArgs, data);
}
private void Attack(Hashtable data)
{
GameMode.OnBeforeGamingAttackEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingAttackEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingAttackEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingAttackEvent(this, EventArgs, data);
}
private void Skill(Hashtable data)
{
GameMode.OnBeforeGamingSkillEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingSkillEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingSkillEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingSkillEvent(this, EventArgs, data);
}
private void Item(Hashtable data)
{
GameMode.OnBeforeGamingItemEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingItemEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingItemEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingItemEvent(this, EventArgs, data);
}
private void Magic(Hashtable data)
{
GameMode.OnBeforeGamingMagicEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingMagicEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingMagicEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingMagicEvent(this, EventArgs, data);
}
private void Buy(Hashtable data)
{
GameMode.OnBeforeGamingBuyEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingBuyEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingBuyEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingBuyEvent(this, EventArgs, data);
}
private void SuperSkill(Hashtable data)
{
GameMode.OnBeforeGamingSuperSkillEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingSuperSkillEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingSuperSkillEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingSuperSkillEvent(this, EventArgs, data);
}
private void Pause(Hashtable data)
{
GameMode.OnBeforeGamingPauseEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingPauseEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingPauseEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingPauseEvent(this, EventArgs, data);
}
private void Unpause(Hashtable data)
{
GameMode.OnBeforeGamingUnpauseEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingUnpauseEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingUnpauseEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingUnpauseEvent(this, EventArgs, data);
}
private void Surrender(Hashtable data)
{
GameMode.OnBeforeGamingSurrenderEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingSurrenderEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingSurrenderEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingSurrenderEvent(this, EventArgs, data);
}
private void UpdateInfo(Hashtable data)
{
GameMode.OnBeforeGamingUpdateInfoEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingUpdateInfoEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingUpdateInfoEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingUpdateInfoEvent(this, EventArgs, data);
}
private void Punish(Hashtable data)
{
GameMode.OnBeforeGamingPunishEvent(this, EventArgs, data);
if (EventArgs.Cancel)
{
return;
}
if (!EventArgs.Cancel)
{
GameMode.OnSucceedGamingPunishEvent(this, EventArgs, data);
}
else
{
GameMode.OnFailedGamingPunishEvent(this, EventArgs, data);
}
GameMode.OnAfterGamingPunishEvent(this, EventArgs, data);
}
}
}