添加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.IClient => InterfaceSet.Type.IClient,
InterfaceType.IServer => InterfaceSet.Type.IServer, InterfaceType.IServer => InterfaceSet.Type.IServer,
InterfaceType.IGameModeSupported => InterfaceSet.Type.IGameModeSupported,
_ => "" _ => ""
}; };
} }

View File

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

View File

@ -1011,61 +1011,61 @@
</member> </member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_Disconnect(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)"> <member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_Disconnect(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary> <summary>
客户端接收服务器断开连接的通知后的处理方法 客户端接收服务器断开连接的通知
</summary> </summary>
<param name="ServerMessage"></param> <param name="ServerMessage"></param>
</member> </member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_System(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)"> <member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_System(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary> <summary>
客户端接收到服务器系统消息后的处理方法 客户端接收并处理服务器系统消息
</summary> </summary>
<param name="ServerMessage"></param> <param name="ServerMessage"></param>
</member> </member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_HeartBeat(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)"> <member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_HeartBeat(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary> <summary>
客户端接收到服务器心跳后的处理方法 客户端接收并处理服务器心跳
</summary> </summary>
<param name="ServerMessage"></param> <param name="ServerMessage"></param>
</member> </member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_ForceLogout(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)"> <member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_ForceLogout(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary> <summary>
客户端接收强制退出登录的通知后的处理方法 客户端接收强制退出登录的通知
</summary> </summary>
<param name="ServerMessage"></param> <param name="ServerMessage"></param>
</member> </member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_Chat(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)"> <member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_Chat(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary> <summary>
客户端接收到聊天信息后的处理方法 客户端接收并处理聊天信息
</summary> </summary>
<param name="ServerMessage"></param> <param name="ServerMessage"></param>
</member> </member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_UpdateRoomMaster(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)"> <member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_UpdateRoomMaster(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary> <summary>
客户端接收到更换房主后的处理方法 客户端接收并处理更换房主信息
</summary> </summary>
<param name="ServerMessage"></param> <param name="ServerMessage"></param>
</member> </member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_MatchRoom(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)"> <member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_MatchRoom(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary> <summary>
客户端接收到匹配房间成功后的处理方法 客户端接收并处理匹配房间成功信息
</summary> </summary>
<param name="ServerMessage"></param> <param name="ServerMessage"></param>
</member> </member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_StartGame(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)"> <member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_StartGame(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary> <summary>
客户端接收到开始游戏信息后的处理方法 客户端接收并处理开始游戏信息
</summary> </summary>
<param name="ServerMessage"></param> <param name="ServerMessage"></param>
</member> </member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_EndGame(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)"> <member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_EndGame(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary> <summary>
客户端接收到游戏结束信息后的处理方法 客户端接收并处理游戏结束信息
</summary> </summary>
<param name="ServerMessage"></param> <param name="ServerMessage"></param>
</member> </member>
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_Gaming(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)"> <member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.SocketHandler_Gaming(Milimoe.FunGame.Core.Library.Common.Network.SocketObject)">
<summary> <summary>
客户端接收到局内消息后的处理方法 客户端接收并处理局内消息
</summary> </summary>
<param name="ServerMessage"></param> <param name="ServerMessage"></param>
</member> </member>
@ -1153,9 +1153,9 @@
这是最基本的接口,要求客户端实现 这是最基本的接口,要求客户端实现
</summary> </summary>
</member> </member>
<member name="T:Milimoe.FunGame.Core.Interface.IGameModeSupported"> <member name="T:Milimoe.FunGame.Core.Interface.IServer">
<summary> <summary>
服务端和客户端都应该实现这个接口用于初始化支持的Mod列表 服务器需要实现此接口
</summary> </summary>
</member> </member>
<member name="P:Milimoe.FunGame.Core.Library.Common.Addon.CharacterMode.Name"> <member name="P:Milimoe.FunGame.Core.Library.Common.Addon.CharacterMode.Name">
@ -1984,6 +1984,30 @@
自动登录的秘钥 自动登录的秘钥
</summary> </summary>
</member> </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"> <member name="P:Milimoe.FunGame.Core.Model.Session.Server_IP">
<summary> <summary>
服务器IP地址 服务器IP地址

View File

@ -1,8 +1,8 @@
namespace Milimoe.FunGame.Core.Interface namespace Milimoe.FunGame.Core.Interface
{ {
public interface IGameMode : IAddon, IGamingConnectEventHandler, IGamingDisconnectEventHandler, IGamingReconnectEventHandler, IGamingBanCharacterEventHandler, IGamingPickCharacterEventHandler, public interface IGameMode : IAddon, IGamingConnectEventHandler, IGamingDisconnectEventHandler, IGamingReconnectEventHandler, IGamingBanCharacterEventHandler, IGamingPickCharacterEventHandler,
IGamingRandomEventHandler, IGamingMoveEventHandler, IGamingAttackEventHandler, IGamingSkillEventHandler, IGamingItemEventHandler, IGamingMagicEventHandler, IGamingBuyEventHandler, IGamingRandomEventHandler, IGamingRoundEventHandler, IGamingLevelUpEventHandler, IGamingMoveEventHandler, IGamingAttackEventHandler, IGamingSkillEventHandler, IGamingItemEventHandler, IGamingMagicEventHandler,
IGamingSuperSkillEventHandler, IGamingPauseEventHandler, IGamingUnpauseEventHandler, IGamingSurrenderEventHandler, IGamingUpdateInfoEventHandler IGamingBuyEventHandler, IGamingSuperSkillEventHandler, IGamingPauseEventHandler, IGamingUnpauseEventHandler, IGamingSurrenderEventHandler, IGamingUpdateInfoEventHandler, IGamingPunishEventHandler
{ {
public abstract bool StartUI(params object[] args); 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; using Milimoe.FunGame.Core.Library.Common.Event;
namespace Milimoe.FunGame.Core.Interface namespace Milimoe.FunGame.Core.Interface
@ -8,10 +9,10 @@ namespace Milimoe.FunGame.Core.Interface
/// </summary> /// </summary>
public interface IGamingEventHandler public interface IGamingEventHandler
{ {
public delegate void BeforeEventHandler(object sender, GamingEventArgs e); public delegate void BeforeEventHandler(object sender, GamingEventArgs e, Hashtable data);
public delegate void AfterEventHandler(object sender, GamingEventArgs e); public delegate void AfterEventHandler(object sender, GamingEventArgs e, Hashtable data);
public delegate void SucceedEventHandler(object sender, GamingEventArgs e); public delegate void SucceedEventHandler(object sender, GamingEventArgs e, Hashtable data);
public delegate void FailedEventHandler(object sender, GamingEventArgs e); public delegate void FailedEventHandler(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingConnectEventHandler : IGamingEventHandler public interface IGamingConnectEventHandler : IGamingEventHandler
@ -21,10 +22,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingConnect; public event SucceedEventHandler? SucceedGamingConnect;
public event FailedEventHandler? FailedGamingConnect; public event FailedEventHandler? FailedGamingConnect;
public void OnBeforeGamingConnectEvent(object sender, GamingEventArgs e); public void OnBeforeGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingConnectEvent(object sender, GamingEventArgs e); public void OnAfterGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingConnectEvent(object sender, GamingEventArgs e); public void OnSucceedGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingConnectEvent(object sender, GamingEventArgs e); public void OnFailedGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingDisconnectEventHandler : IGamingEventHandler public interface IGamingDisconnectEventHandler : IGamingEventHandler
@ -34,10 +35,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingDisconnect; public event SucceedEventHandler? SucceedGamingDisconnect;
public event FailedEventHandler? FailedGamingDisconnect; public event FailedEventHandler? FailedGamingDisconnect;
public void OnBeforeGamingDisconnectEvent(object sender, GamingEventArgs e); public void OnBeforeGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingDisconnectEvent(object sender, GamingEventArgs e); public void OnAfterGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingDisconnectEvent(object sender, GamingEventArgs e); public void OnSucceedGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingDisconnectEvent(object sender, GamingEventArgs e); public void OnFailedGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingReconnectEventHandler : IGamingEventHandler public interface IGamingReconnectEventHandler : IGamingEventHandler
@ -47,10 +48,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingReconnect; public event SucceedEventHandler? SucceedGamingReconnect;
public event FailedEventHandler? FailedGamingReconnect; public event FailedEventHandler? FailedGamingReconnect;
public void OnBeforeGamingReconnectEvent(object sender, GamingEventArgs e); public void OnBeforeGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingReconnectEvent(object sender, GamingEventArgs e); public void OnAfterGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingReconnectEvent(object sender, GamingEventArgs e); public void OnSucceedGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingReconnectEvent(object sender, GamingEventArgs e); public void OnFailedGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingBanCharacterEventHandler : IGamingEventHandler public interface IGamingBanCharacterEventHandler : IGamingEventHandler
@ -60,10 +61,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingBanCharacter; public event SucceedEventHandler? SucceedGamingBanCharacter;
public event FailedEventHandler? FailedGamingBanCharacter; public event FailedEventHandler? FailedGamingBanCharacter;
public void OnBeforeGamingBanCharacterEvent(object sender, GamingEventArgs e); public void OnBeforeGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingBanCharacterEvent(object sender, GamingEventArgs e); public void OnAfterGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingBanCharacterEvent(object sender, GamingEventArgs e); public void OnSucceedGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingBanCharacterEvent(object sender, GamingEventArgs e); public void OnFailedGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingPickCharacterEventHandler : IGamingEventHandler public interface IGamingPickCharacterEventHandler : IGamingEventHandler
@ -73,10 +74,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingPickCharacter; public event SucceedEventHandler? SucceedGamingPickCharacter;
public event FailedEventHandler? FailedGamingPickCharacter; public event FailedEventHandler? FailedGamingPickCharacter;
public void OnBeforeGamingPickCharacterEvent(object sender, GamingEventArgs e); public void OnBeforeGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingPickCharacterEvent(object sender, GamingEventArgs e); public void OnAfterGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingPickCharacterEvent(object sender, GamingEventArgs e); public void OnSucceedGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingPickCharacterEvent(object sender, GamingEventArgs e); public void OnFailedGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingRandomEventHandler : IGamingEventHandler public interface IGamingRandomEventHandler : IGamingEventHandler
@ -86,10 +87,36 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingRandom; public event SucceedEventHandler? SucceedGamingRandom;
public event FailedEventHandler? FailedGamingRandom; public event FailedEventHandler? FailedGamingRandom;
public void OnBeforeGamingRandomEvent(object sender, GamingEventArgs e); public void OnBeforeGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingRandomEvent(object sender, GamingEventArgs e); public void OnAfterGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingRandomEvent(object sender, GamingEventArgs e); public void OnSucceedGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingRandomEvent(object sender, GamingEventArgs e); 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 public interface IGamingMoveEventHandler : IGamingEventHandler
@ -99,10 +126,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingMove; public event SucceedEventHandler? SucceedGamingMove;
public event FailedEventHandler? FailedGamingMove; public event FailedEventHandler? FailedGamingMove;
public void OnBeforeGamingMoveEvent(object sender, GamingEventArgs e); public void OnBeforeGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingMoveEvent(object sender, GamingEventArgs e); public void OnAfterGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingMoveEvent(object sender, GamingEventArgs e); public void OnSucceedGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingMoveEvent(object sender, GamingEventArgs e); public void OnFailedGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingAttackEventHandler : IGamingEventHandler public interface IGamingAttackEventHandler : IGamingEventHandler
@ -112,10 +139,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingAttack; public event SucceedEventHandler? SucceedGamingAttack;
public event FailedEventHandler? FailedGamingAttack; public event FailedEventHandler? FailedGamingAttack;
public void OnBeforeGamingAttackEvent(object sender, GamingEventArgs e); public void OnBeforeGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingAttackEvent(object sender, GamingEventArgs e); public void OnAfterGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingAttackEvent(object sender, GamingEventArgs e); public void OnSucceedGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingAttackEvent(object sender, GamingEventArgs e); public void OnFailedGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingSkillEventHandler : IGamingEventHandler public interface IGamingSkillEventHandler : IGamingEventHandler
@ -125,10 +152,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingSkill; public event SucceedEventHandler? SucceedGamingSkill;
public event FailedEventHandler? FailedGamingSkill; public event FailedEventHandler? FailedGamingSkill;
public void OnBeforeGamingSkillEvent(object sender, GamingEventArgs e); public void OnBeforeGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingSkillEvent(object sender, GamingEventArgs e); public void OnAfterGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingSkillEvent(object sender, GamingEventArgs e); public void OnSucceedGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingSkillEvent(object sender, GamingEventArgs e); public void OnFailedGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingItemEventHandler : IGamingEventHandler public interface IGamingItemEventHandler : IGamingEventHandler
@ -138,10 +165,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingItem; public event SucceedEventHandler? SucceedGamingItem;
public event FailedEventHandler? FailedGamingItem; public event FailedEventHandler? FailedGamingItem;
public void OnBeforeGamingItemEvent(object sender, GamingEventArgs e); public void OnBeforeGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingItemEvent(object sender, GamingEventArgs e); public void OnAfterGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingItemEvent(object sender, GamingEventArgs e); public void OnSucceedGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingItemEvent(object sender, GamingEventArgs e); public void OnFailedGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingMagicEventHandler : IGamingEventHandler public interface IGamingMagicEventHandler : IGamingEventHandler
@ -151,10 +178,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingMagic; public event SucceedEventHandler? SucceedGamingMagic;
public event FailedEventHandler? FailedGamingMagic; public event FailedEventHandler? FailedGamingMagic;
public void OnBeforeGamingMagicEvent(object sender, GamingEventArgs e); public void OnBeforeGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingMagicEvent(object sender, GamingEventArgs e); public void OnAfterGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingMagicEvent(object sender, GamingEventArgs e); public void OnSucceedGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingMagicEvent(object sender, GamingEventArgs e); public void OnFailedGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingBuyEventHandler : IGamingEventHandler public interface IGamingBuyEventHandler : IGamingEventHandler
@ -164,10 +191,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingBuy; public event SucceedEventHandler? SucceedGamingBuy;
public event FailedEventHandler? FailedGamingBuy; public event FailedEventHandler? FailedGamingBuy;
public void OnBeforeGamingBuyEvent(object sender, GamingEventArgs e); public void OnBeforeGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingBuyEvent(object sender, GamingEventArgs e); public void OnAfterGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingBuyEvent(object sender, GamingEventArgs e); public void OnSucceedGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingBuyEvent(object sender, GamingEventArgs e); public void OnFailedGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingSuperSkillEventHandler : IGamingEventHandler public interface IGamingSuperSkillEventHandler : IGamingEventHandler
@ -177,10 +204,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingSuperSkill; public event SucceedEventHandler? SucceedGamingSuperSkill;
public event FailedEventHandler? FailedGamingSuperSkill; public event FailedEventHandler? FailedGamingSuperSkill;
public void OnBeforeGamingSuperSkillEvent(object sender, GamingEventArgs e); public void OnBeforeGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingSuperSkillEvent(object sender, GamingEventArgs e); public void OnAfterGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingSuperSkillEvent(object sender, GamingEventArgs e); public void OnSucceedGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingSuperSkillEvent(object sender, GamingEventArgs e); public void OnFailedGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingPauseEventHandler : IGamingEventHandler public interface IGamingPauseEventHandler : IGamingEventHandler
@ -190,10 +217,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingPause; public event SucceedEventHandler? SucceedGamingPause;
public event FailedEventHandler? FailedGamingPause; public event FailedEventHandler? FailedGamingPause;
public void OnBeforeGamingPauseEvent(object sender, GamingEventArgs e); public void OnBeforeGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingPauseEvent(object sender, GamingEventArgs e); public void OnAfterGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingPauseEvent(object sender, GamingEventArgs e); public void OnSucceedGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingPauseEvent(object sender, GamingEventArgs e); public void OnFailedGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingUnpauseEventHandler : IGamingEventHandler public interface IGamingUnpauseEventHandler : IGamingEventHandler
@ -203,10 +230,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingUnpause; public event SucceedEventHandler? SucceedGamingUnpause;
public event FailedEventHandler? FailedGamingUnpause; public event FailedEventHandler? FailedGamingUnpause;
public void OnBeforeGamingUnpauseEvent(object sender, GamingEventArgs e); public void OnBeforeGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingUnpauseEvent(object sender, GamingEventArgs e); public void OnAfterGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingUnpauseEvent(object sender, GamingEventArgs e); public void OnSucceedGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingUnpauseEvent(object sender, GamingEventArgs e); public void OnFailedGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingSurrenderEventHandler : IGamingEventHandler public interface IGamingSurrenderEventHandler : IGamingEventHandler
@ -216,10 +243,10 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingSurrender; public event SucceedEventHandler? SucceedGamingSurrender;
public event FailedEventHandler? FailedGamingSurrender; public event FailedEventHandler? FailedGamingSurrender;
public void OnBeforeGamingSurrenderEvent(object sender, GamingEventArgs e); public void OnBeforeGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingSurrenderEvent(object sender, GamingEventArgs e); public void OnAfterGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingSurrenderEvent(object sender, GamingEventArgs e); public void OnSucceedGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingSurrenderEvent(object sender, GamingEventArgs e); public void OnFailedGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingUpdateInfoEventHandler : IGamingEventHandler public interface IGamingUpdateInfoEventHandler : IGamingEventHandler
@ -229,9 +256,22 @@ namespace Milimoe.FunGame.Core.Interface
public event SucceedEventHandler? SucceedGamingUpdateInfo; public event SucceedEventHandler? SucceedGamingUpdateInfo;
public event FailedEventHandler? FailedGamingUpdateInfo; public event FailedEventHandler? FailedGamingUpdateInfo;
public void OnBeforeGamingUpdateInfoEvent(object sender, GamingEventArgs e); public void OnBeforeGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnAfterGamingUpdateInfoEvent(object sender, GamingEventArgs e); public void OnAfterGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnSucceedGamingUpdateInfoEvent(object sender, GamingEventArgs e); public void OnSucceedGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void OnFailedGamingUpdateInfoEvent(object sender, GamingEventArgs e); 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 namespace Milimoe.FunGame.Core.Interface
{ {
public interface IGamingConnectEvent public interface IGamingConnectEvent
{ {
public void BeforeGamingConnectEvent(object sender, GamingEventArgs e); public void BeforeGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingConnectEvent(object sender, GamingEventArgs e); public void AfterGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingConnectEvent(object sender, GamingEventArgs e); public void SucceedGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingConnectEvent(object sender, GamingEventArgs e); public void FailedGamingConnectEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingDisconnectEvent public interface IGamingDisconnectEvent
{ {
public void BeforeGamingDisconnectEvent(object sender, GamingEventArgs e); public void BeforeGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingDisconnectEvent(object sender, GamingEventArgs e); public void AfterGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingDisconnectEvent(object sender, GamingEventArgs e); public void SucceedGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingDisconnectEvent(object sender, GamingEventArgs e); public void FailedGamingDisconnectEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingReconnectEvent public interface IGamingReconnectEvent
{ {
public void BeforeGamingReconnectEvent(object sender, GamingEventArgs e); public void BeforeGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingReconnectEvent(object sender, GamingEventArgs e); public void AfterGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingReconnectEvent(object sender, GamingEventArgs e); public void SucceedGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingReconnectEvent(object sender, GamingEventArgs e); public void FailedGamingReconnectEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingBanCharacterEvent public interface IGamingBanCharacterEvent
{ {
public void BeforeGamingBanCharacterEvent(object sender, GamingEventArgs e); public void BeforeGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingBanCharacterEvent(object sender, GamingEventArgs e); public void AfterGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingBanCharacterEvent(object sender, GamingEventArgs e); public void SucceedGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingBanCharacterEvent(object sender, GamingEventArgs e); public void FailedGamingBanCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingPickCharacterEvent public interface IGamingPickCharacterEvent
{ {
public void BeforeGamingPickCharacterEvent(object sender, GamingEventArgs e); public void BeforeGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingPickCharacterEvent(object sender, GamingEventArgs e); public void AfterGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingPickCharacterEvent(object sender, GamingEventArgs e); public void SucceedGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingPickCharacterEvent(object sender, GamingEventArgs e); public void FailedGamingPickCharacterEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingRandomEvent public interface IGamingRandomEvent
{ {
public void BeforeGamingRandomEvent(object sender, GamingEventArgs e); public void BeforeGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingRandomEvent(object sender, GamingEventArgs e); public void AfterGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingRandomEvent(object sender, GamingEventArgs e); public void SucceedGamingRandomEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingRandomEvent(object sender, GamingEventArgs e); 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 interface IGamingMoveEvent
{ {
public void BeforeGamingMoveEvent(object sender, GamingEventArgs e); public void BeforeGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingMoveEvent(object sender, GamingEventArgs e); public void AfterGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingMoveEvent(object sender, GamingEventArgs e); public void SucceedGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingMoveEvent(object sender, GamingEventArgs e); public void FailedGamingMoveEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingAttackEvent public interface IGamingAttackEvent
{ {
public void BeforeGamingAttackEvent(object sender, GamingEventArgs e); public void BeforeGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingAttackEvent(object sender, GamingEventArgs e); public void AfterGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingAttackEvent(object sender, GamingEventArgs e); public void SucceedGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingAttackEvent(object sender, GamingEventArgs e); public void FailedGamingAttackEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingSkillEvent public interface IGamingSkillEvent
{ {
public void BeforeGamingSkillEvent(object sender, GamingEventArgs e); public void BeforeGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingSkillEvent(object sender, GamingEventArgs e); public void AfterGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingSkillEvent(object sender, GamingEventArgs e); public void SucceedGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingSkillEvent(object sender, GamingEventArgs e); public void FailedGamingSkillEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingItemEvent public interface IGamingItemEvent
{ {
public void BeforeGamingItemEvent(object sender, GamingEventArgs e); public void BeforeGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingItemEvent(object sender, GamingEventArgs e); public void AfterGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingItemEvent(object sender, GamingEventArgs e); public void SucceedGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingItemEvent(object sender, GamingEventArgs e); public void FailedGamingItemEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingMagicEvent public interface IGamingMagicEvent
{ {
public void BeforeGamingMagicEvent(object sender, GamingEventArgs e); public void BeforeGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingMagicEvent(object sender, GamingEventArgs e); public void AfterGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingMagicEvent(object sender, GamingEventArgs e); public void SucceedGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingMagicEvent(object sender, GamingEventArgs e); public void FailedGamingMagicEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingBuyEvent public interface IGamingBuyEvent
{ {
public void BeforeGamingBuyEvent(object sender, GamingEventArgs e); public void BeforeGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingBuyEvent(object sender, GamingEventArgs e); public void AfterGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingBuyEvent(object sender, GamingEventArgs e); public void SucceedGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingBuyEvent(object sender, GamingEventArgs e); public void FailedGamingBuyEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingSuperSkillEvent public interface IGamingSuperSkillEvent
{ {
public void BeforeGamingSuperSkillEvent(object sender, GamingEventArgs e); public void BeforeGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingSuperSkillEvent(object sender, GamingEventArgs e); public void AfterGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingSuperSkillEvent(object sender, GamingEventArgs e); public void SucceedGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingSuperSkillEvent(object sender, GamingEventArgs e); public void FailedGamingSuperSkillEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingPauseEvent public interface IGamingPauseEvent
{ {
public void BeforeGamingPauseEvent(object sender, GamingEventArgs e); public void BeforeGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingPauseEvent(object sender, GamingEventArgs e); public void AfterGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingPauseEvent(object sender, GamingEventArgs e); public void SucceedGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingPauseEvent(object sender, GamingEventArgs e); public void FailedGamingPauseEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingUnpauseEvent public interface IGamingUnpauseEvent
{ {
public void BeforeGamingUnpauseEvent(object sender, GamingEventArgs e); public void BeforeGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingUnpauseEvent(object sender, GamingEventArgs e); public void AfterGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingUnpauseEvent(object sender, GamingEventArgs e); public void SucceedGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingUnpauseEvent(object sender, GamingEventArgs e); public void FailedGamingUnpauseEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingSurrenderEvent public interface IGamingSurrenderEvent
{ {
public void BeforeGamingSurrenderEvent(object sender, GamingEventArgs e); public void BeforeGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingSurrenderEvent(object sender, GamingEventArgs e); public void AfterGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingSurrenderEvent(object sender, GamingEventArgs e); public void SucceedGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingSurrenderEvent(object sender, GamingEventArgs e); public void FailedGamingSurrenderEvent(object sender, GamingEventArgs e, Hashtable data);
} }
public interface IGamingUpdateInfoEvent public interface IGamingUpdateInfoEvent
{ {
public void BeforeGamingUpdateInfoEvent(object sender, GamingEventArgs e); public void BeforeGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void AfterGamingUpdateInfoEvent(object sender, GamingEventArgs e); public void AfterGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void SucceedGamingUpdateInfoEvent(object sender, GamingEventArgs e); public void SucceedGamingUpdateInfoEvent(object sender, GamingEventArgs e, Hashtable data);
public void FailedGamingUpdateInfoEvent(object sender, GamingEventArgs e); 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 namespace Milimoe.FunGame.Core.Interface
{ {
/// <summary>
/// 服务器需要实现此接口
/// </summary>
public interface IServer 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.Interface;
using Milimoe.FunGame.Core.Library.Common.Event; using Milimoe.FunGame.Core.Library.Common.Event;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
@ -191,6 +192,24 @@ namespace Milimoe.FunGame.Core.Library.Common.Addon
FailedGamingRandom += bind.FailedGamingRandomEvent; 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) if (this is IGamingMoveEvent)
{ {
IGamingMoveEvent bind = (IGamingMoveEvent)this; IGamingMoveEvent bind = (IGamingMoveEvent)this;
@ -289,6 +308,15 @@ namespace Milimoe.FunGame.Core.Library.Common.Addon
SucceedGamingUpdateInfo += bind.SucceedGamingUpdateInfoEvent; SucceedGamingUpdateInfo += bind.SucceedGamingUpdateInfoEvent;
FailedGamingUpdateInfo += bind.FailedGamingUpdateInfoEvent; 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; public event IGamingEventHandler.BeforeEventHandler? BeforeGamingConnect;
@ -315,6 +343,14 @@ namespace Milimoe.FunGame.Core.Library.Common.Addon
public event IGamingEventHandler.AfterEventHandler? AfterGamingRandom; public event IGamingEventHandler.AfterEventHandler? AfterGamingRandom;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingRandom; public event IGamingEventHandler.SucceedEventHandler? SucceedGamingRandom;
public event IGamingEventHandler.FailedEventHandler? FailedGamingRandom; 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.BeforeEventHandler? BeforeGamingMove;
public event IGamingEventHandler.AfterEventHandler? AfterGamingMove; public event IGamingEventHandler.AfterEventHandler? AfterGamingMove;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingMove; public event IGamingEventHandler.SucceedEventHandler? SucceedGamingMove;
@ -359,345 +395,409 @@ namespace Milimoe.FunGame.Core.Library.Common.Addon
public event IGamingEventHandler.AfterEventHandler? AfterGamingUpdateInfo; public event IGamingEventHandler.AfterEventHandler? AfterGamingUpdateInfo;
public event IGamingEventHandler.SucceedEventHandler? SucceedGamingUpdateInfo; public event IGamingEventHandler.SucceedEventHandler? SucceedGamingUpdateInfo;
public event IGamingEventHandler.FailedEventHandler? FailedGamingUpdateInfo; 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 IClient = "IClientImpl";
public const string IServer = "IServerImpl"; public const string IServer = "IServerImpl";
public const string IGameModeSupported = "IGameModeSupported";
} }
public class Method public class Method
@ -175,6 +174,7 @@ namespace Milimoe.FunGame.Core.Library.Constant
public const string Unpause = "Gaming::Unpause"; public const string Unpause = "Gaming::Unpause";
public const string Surrender = "Gaming::Surrender"; public const string Surrender = "Gaming::Surrender";
public const string UpdateInfo = "Gaming::UpdateInfo"; public const string UpdateInfo = "Gaming::UpdateInfo";
public const string Punish = "Gaming::Punish";
/// <summary> /// <summary>
/// 获取Type的等效字符串 /// 获取Type的等效字符串
@ -204,6 +204,7 @@ namespace Milimoe.FunGame.Core.Library.Constant
GamingType.Unpause => Unpause, GamingType.Unpause => Unpause,
GamingType.Surrender => Surrender, GamingType.Surrender => Surrender,
GamingType.UpdateInfo => UpdateInfo, GamingType.UpdateInfo => UpdateInfo,
GamingType.Punish => Punish,
_ => None _ => None
}; };
} }

View File

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