using Milimoe.FunGame.Core.Library.Common.Event; using Milimoe.FunGame.Core.Library.Constant; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Milimoe.FunGame.Core.Interface { public interface IEvent { public delegate EventResult BeforeEvent(object sender, GeneralEventArgs e); public delegate EventResult AfterEvent(object sender, GeneralEventArgs e); public delegate EventResult SucceedEvent(object sender, GeneralEventArgs e); public delegate EventResult FailedEvent(object sender, GeneralEventArgs e); } public interface IConnectEvent : IEvent { public event BeforeEvent BeforeConnectEvent; public event AfterEvent AfterConnectEvent; public event SucceedEvent SucceedConnectEvent; public event FailedEvent FailedConnectEvent; public EventResult OnBeforeConnectEvent(object sender, GeneralEventArgs e); public EventResult OnAfterConnectEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedConnectEvent(object sender, GeneralEventArgs e); public EventResult OnFailedConnectEvent(object sender, GeneralEventArgs e); } public interface IDisconnectEvent : IEvent { public event BeforeEvent BeforeDisconnectEvent; public event AfterEvent AfterDisconnectEvent; public event SucceedEvent SucceedDisconnectEvent; public event FailedEvent FailedDisconnectEvent; public EventResult OnBeforeDisconnectEvent(object sender, GeneralEventArgs e); public EventResult OnAfterDisconnectEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedDisconnectEvent(object sender, GeneralEventArgs e); public EventResult OnFailedDisconnectEvent(object sender, GeneralEventArgs e); } public interface ILoginEvent : IEvent { public event BeforeEvent BeforeLoginEvent; public event AfterEvent AfterLoginEvent; public event SucceedEvent SucceedLoginEvent; public event FailedEvent FailedLoginEvent; public EventResult OnBeforeLoginEvent(object sender, GeneralEventArgs e); public EventResult OnAfterLoginEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedLoginEvent(object sender, GeneralEventArgs e); public EventResult OnFailedLoginEvent(object sender, GeneralEventArgs e); } public interface ILogoutEvent : IEvent { public event BeforeEvent BeforeLogoutEvent; public event AfterEvent AfterLogoutEvent; public event SucceedEvent SucceedLogoutEvent; public event FailedEvent FailedLogoutEvent; public EventResult OnBeforeLogoutEvent(object sender, GeneralEventArgs e); public EventResult OnAfterLogoutEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedLogoutEvent(object sender, GeneralEventArgs e); public EventResult OnFailedLogoutEvent(object sender, GeneralEventArgs e); } public interface IRegEvent : IEvent { public event BeforeEvent BeforeRegEvent; public event AfterEvent AfterRegEvent; public event SucceedEvent SucceedRegEvent; public event FailedEvent FailedRegEvent; public EventResult OnBeforeRegEvent(object sender, GeneralEventArgs e); public EventResult OnAfterRegEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedRegEvent(object sender, GeneralEventArgs e); public EventResult OnFailedRegEvent(object sender, GeneralEventArgs e); } public interface IIntoRoomEvent : IEvent { public event BeforeEvent BeforeIntoRoomEvent; public event AfterEvent AfterIntoRoomEvent; public event SucceedEvent SucceedIntoRoomEvent; public event FailedEvent FailedIntoRoomEvent; public EventResult OnBeforeIntoRoomEvent(object sender, GeneralEventArgs e); public EventResult OnAfterIntoRoomEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedIntoRoomEvent(object sender, GeneralEventArgs e); public EventResult OnFailedIntoRoomEvent(object sender, GeneralEventArgs e); } public interface ISendTalkEvent : IEvent { public event BeforeEvent BeforeSendTalkEvent; public event AfterEvent AfterSendTalkEvent; public event SucceedEvent SucceedSendTalkEvent; public event FailedEvent FailedSendTalkEvent; public EventResult OnBeforeSendTalkEvent(object sender, GeneralEventArgs e); public EventResult OnAfterSendTalkEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedSendTalkEvent(object sender, GeneralEventArgs e); public EventResult OnFailedSendTalkEvent(object sender, GeneralEventArgs e); } public interface ICreateRoomEvent : IEvent { public event BeforeEvent BeforeCreateRoomEvent; public event AfterEvent AfterCreateRoomEvent; public event SucceedEvent SucceedCreateRoomEvent; public event FailedEvent FailedCreateRoomEvent; public EventResult OnBeforeCreateRoomEvent(object sender, GeneralEventArgs e); public EventResult OnAfterCreateRoomEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedCreateRoomEvent(object sender, GeneralEventArgs e); public EventResult OnFailedCreateRoomEvent(object sender, GeneralEventArgs e); } public interface IQuitRoomEvent : IEvent { public event BeforeEvent BeforeQuitRoomEvent; public event AfterEvent AfterQuitRoomEvent; public event SucceedEvent SucceedQuitRoomEvent; public event FailedEvent FailedQuitRoomEvent; public EventResult OnBeforeQuitRoomEvent(object sender, GeneralEventArgs e); public EventResult OnAfterQuitRoomEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedQuitRoomEvent(object sender, GeneralEventArgs e); public EventResult OnFailedQuitRoomEvent(object sender, GeneralEventArgs e); } public interface IChangeRoomSettingEvent : IEvent { public event BeforeEvent BeforeChangeRoomSettingEvent; public event AfterEvent AfterChangeRoomSettingEvent; public event SucceedEvent SucceedChangeRoomSettingEvent; public event FailedEvent FailedChangeRoomSettingEvent; public EventResult OnBeforeChangeRoomSettingEvent(object sender, GeneralEventArgs e); public EventResult OnAfterChangeRoomSettingEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedChangeRoomSettingEvent(object sender, GeneralEventArgs e); public EventResult OnFailedChangeRoomSettingEvent(object sender, GeneralEventArgs e); } public interface IStartMatchEvent : IEvent { public event BeforeEvent BeforeStartMatchEvent; public event AfterEvent AfterStartMatchEvent; public event SucceedEvent SucceedStartMatchEvent; public event FailedEvent FailedStartMatchEvent; public EventResult OnBeforeStartMatchEvent(object sender, GeneralEventArgs e); public EventResult OnAfterStartMatchEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedStartMatchEvent(object sender, GeneralEventArgs e); public EventResult OnFailedStartMatchEvent(object sender, GeneralEventArgs e); } public interface IStartGameEvent : IEvent { public event BeforeEvent BeforeStartGameEvent; public event AfterEvent AfterStartGameEvent; public event SucceedEvent SucceedStartGameEvent; public event FailedEvent FailedStartGameEvent; public EventResult OnBeforeStartGameEvent(object sender, GeneralEventArgs e); public EventResult OnAfterStartGameEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedStartGameEvent(object sender, GeneralEventArgs e); public EventResult OnFailedStartGameEvent(object sender, GeneralEventArgs e); } public interface IChangeProfileEvent : IEvent { public event BeforeEvent BeforeChangeProfileEvent; public event AfterEvent AfterChangeProfileEvent; public event SucceedEvent SucceedChangeProfileEvent; public event FailedEvent FailedChangeProfileEvent; public EventResult OnBeforeChangeProfileEvent(object sender, GeneralEventArgs e); public EventResult OnAfterChangeProfileEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedChangeProfileEvent(object sender, GeneralEventArgs e); public EventResult OnFailedChangeProfileEvent(object sender, GeneralEventArgs e); } public interface IChangeAccountSettingEvent : IEvent { public event BeforeEvent BeforeChangeAccountSettingEvent; public event AfterEvent AfterChangeAccountSettingEvent; public event SucceedEvent SucceedChangeAccountSettingEvent; public event FailedEvent FailedChangeAccountSettingEvent; public EventResult OnBeforeChangeAccountSettingEvent(object sender, GeneralEventArgs e); public EventResult OnAfterChangeAccountSettingEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedChangeAccountSettingEvent(object sender, GeneralEventArgs e); public EventResult OnFailedChangeAccountSettingEvent(object sender, GeneralEventArgs e); } public interface IOpenInventoryEvent : IEvent { public event BeforeEvent BeforeOpenInventoryEvent; public event AfterEvent AfterOpenInventoryEvent; public event SucceedEvent SucceedOpenInventoryEvent; public event FailedEvent FailedOpenInventoryEvent; public EventResult OnBeforeOpenInventoryEvent(object sender, GeneralEventArgs e); public EventResult OnAfterOpenInventoryEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedOpenInventoryEvent(object sender, GeneralEventArgs e); public EventResult OnFailedOpenInventoryEvent(object sender, GeneralEventArgs e); } public interface ISignInEvent : IEvent { public event BeforeEvent BeforeSignInEvent; public event AfterEvent AfterSignInEvent; public event SucceedEvent SucceedSignInEvent; public event FailedEvent FailedSignInEvent; public EventResult OnBeforeSignInEvent(object sender, GeneralEventArgs e); public EventResult OnAfterSignInEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedSignInEvent(object sender, GeneralEventArgs e); public EventResult OnFailedSignInEvent(object sender, GeneralEventArgs e); } public interface IOpenStoreEvent : IEvent { public event BeforeEvent BeforeOpenStoreEvent; public event AfterEvent AfterOpenStoreEvent; public event SucceedEvent SucceedOpenStoreEvent; public event FailedEvent FailedOpenStoreEvent; public EventResult OnBeforeOpenStoreEvent(object sender, GeneralEventArgs e); public EventResult OnAfterOpenStoreEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedOpenStoreEvent(object sender, GeneralEventArgs e); public EventResult OnFailedOpenStoreEvent(object sender, GeneralEventArgs e); } public interface IBuyItemEvent : IEvent { public event BeforeEvent BeforeBuyItemEvent; public event AfterEvent AfterBuyItemEvent; public event SucceedEvent SucceedBuyItemEvent; public event FailedEvent FailedBuyItemEvent; public EventResult OnBeforeBuyItemEvent(object sender, GeneralEventArgs e); public EventResult OnAfterBuyItemEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedBuyItemEvent(object sender, GeneralEventArgs e); public EventResult OnFailedBuyItemEvent(object sender, GeneralEventArgs e); } public interface IShowRankingEvent : IEvent { public event BeforeEvent BeforeShowRankingEvent; public event AfterEvent AfterShowRankingEvent; public event SucceedEvent SucceedShowRankingEvent; public event FailedEvent FailedShowRankingEvent; public EventResult OnBeforeShowRankingEvent(object sender, GeneralEventArgs e); public EventResult OnAfterShowRankingEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedShowRankingEvent(object sender, GeneralEventArgs e); public EventResult OnFailedShowRankingEvent(object sender, GeneralEventArgs e); } public interface IUseItemEvent : IEvent { public event BeforeEvent BeforeUseItemEvent; public event AfterEvent AfterUseItemEvent; public event SucceedEvent SucceedUseItemEvent; public event FailedEvent FailedUseItemEvent; public EventResult OnBeforeUseItemEvent(object sender, GeneralEventArgs e); public EventResult OnAfterUseItemEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedUseItemEvent(object sender, GeneralEventArgs e); public EventResult OnFailedUseItemEvent(object sender, GeneralEventArgs e); } public interface IEndGameEvent : IEvent { public event BeforeEvent BeforeEndGameEvent; public event AfterEvent AfterEndGameEvent; public event SucceedEvent SucceedEndGameEvent; public event FailedEvent FailedEndGameEvent; public EventResult OnBeforeEndGameEvent(object sender, GeneralEventArgs e); public EventResult OnAfterEndGameEvent(object sender, GeneralEventArgs e); public EventResult OnSucceedEndGameEvent(object sender, GeneralEventArgs e); public EventResult OnFailedEndGameEvent(object sender, GeneralEventArgs e); } }