diff --git a/FunGame.Core/Api/Factory/ItemFactory.cs b/FunGame.Core/Api/Factory/ItemFactory.cs index 4f57517..31db9a6 100644 --- a/FunGame.Core/Api/Factory/ItemFactory.cs +++ b/FunGame.Core/Api/Factory/ItemFactory.cs @@ -6,8 +6,21 @@ using System.Threading.Tasks; namespace Milimoe.FunGame.Core.Api.Factory { - public abstract class ItemFactory + public class ItemFactory { - + public static Milimoe.FunGame.Core.Entity.General.Item? GetInstance(Milimoe.FunGame.Core.Entity.Enum.ItemType type, string Name) + { + Milimoe.FunGame.Core.Entity.General.Item? item = null; + switch (type) + { + case Entity.Enum.ItemType.Active: + item = new Milimoe.FunGame.Core.Entity.General.ActiveItem(Name); + break; + case Entity.Enum.ItemType.Passive: + item = new Milimoe.FunGame.Core.Entity.General.PassiveItem(Name); + break; + } + return item; + } } } diff --git a/FunGame.Core/Api/Factory/RoomFactory.cs b/FunGame.Core/Api/Factory/RoomFactory.cs index 9f9c774..d2c38d1 100644 --- a/FunGame.Core/Api/Factory/RoomFactory.cs +++ b/FunGame.Core/Api/Factory/RoomFactory.cs @@ -1,4 +1,5 @@ -using System; +using Milimoe.FunGame.Core.Entity.General; +using System; using System.Collections; using System.Collections.Generic; using System.Linq; @@ -10,6 +11,24 @@ namespace Milimoe.FunGame.Core.Api.Factory { public class RoomFactory { - + public static Milimoe.FunGame.Core.Entity.General.Room GetInstanceByRandomID(Milimoe.FunGame.Core.Entity.Enum.RoomType type, Milimoe.FunGame.Core.Entity.General.User? user) + { + Milimoe.FunGame.Core.Entity.General.Room room = new(user) + { + RoomType = type, + RoomState = Entity.Enum.RoomState.Created + }; + return room; + } + + public static Milimoe.FunGame.Core.Entity.General.Room GetInstanceByRoomID(Milimoe.FunGame.Core.Entity.Enum.RoomType type, string roomid, Milimoe.FunGame.Core.Entity.General.User? user) + { + Milimoe.FunGame.Core.Entity.General.Room room = new(roomid, user) + { + RoomType = type, + RoomState = Entity.Enum.RoomState.Created + }; + return room; + } } } diff --git a/FunGame.Core/Api/Factory/SkillFactory.cs b/FunGame.Core/Api/Factory/SkillFactory.cs index 63a8e04..45f3b3d 100644 --- a/FunGame.Core/Api/Factory/SkillFactory.cs +++ b/FunGame.Core/Api/Factory/SkillFactory.cs @@ -6,8 +6,21 @@ using System.Threading.Tasks; namespace Milimoe.FunGame.Core.Api.Factory { - public abstract class SkillFactory + public class SkillFactory { - + public static Milimoe.FunGame.Core.Entity.General.Skill? GetInstance(Milimoe.FunGame.Core.Entity.Enum.SkillType type, string Name) + { + Milimoe.FunGame.Core.Entity.General.Skill? skill = null; + switch (type) + { + case Entity.Enum.SkillType.Active: + skill = new Milimoe.FunGame.Core.Entity.General.ActiveSkill(Name); + break; + case Entity.Enum.SkillType.Passive: + skill = new Milimoe.FunGame.Core.Entity.General.PassiveSkill(Name); + break; + } + return skill; + } } } diff --git a/FunGame.Core/Api/Factory/UserFactory.cs b/FunGame.Core/Api/Factory/UserFactory.cs index c793a3f..dd616c7 100644 --- a/FunGame.Core/Api/Factory/UserFactory.cs +++ b/FunGame.Core/Api/Factory/UserFactory.cs @@ -8,6 +8,19 @@ namespace Milimoe.FunGame.Core.Api.Factory { public class UserFactory { - + public static Milimoe.FunGame.Core.Entity.General.User GetInstance() + { + return new Milimoe.FunGame.Core.Entity.General.User(); + } + + public static Milimoe.FunGame.Core.Entity.General.User GetInstance(string username) + { + return new Milimoe.FunGame.Core.Entity.General.User(username); + } + + public static Milimoe.FunGame.Core.Entity.General.User GetInstance(string username, string password) + { + return new Milimoe.FunGame.Core.Entity.General.User(username, password); + } } } diff --git a/FunGame.Core/Entity/Enum/CommonEnums.cs b/FunGame.Core/Entity/Enum/CommonEnums.cs index a9fad2d..4a99fb6 100644 --- a/FunGame.Core/Entity/Enum/CommonEnums.cs +++ b/FunGame.Core/Entity/Enum/CommonEnums.cs @@ -5,7 +5,6 @@ using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; - namespace Milimoe.FunGame.Core.Entity.Enum { /** @@ -106,6 +105,43 @@ namespace Milimoe.FunGame.Core.Entity.Enum WrongFormat } + public enum EventType + { + ConnectEvent, + DisconnectEvent, + LoginEvent, + LogoutEvent, + RegEvent, + IntoRoomEvent, + SendTalkEvent, + CreateRoomEvent, + QuitRoomEvent, + ChangeRoomSettingEvent, + StartMatchEvent, + StartGameEvent, + ChangeProfileEvent, + ChangeAccountSettingEvent, + OpenStockEvent, + SignInEvent, + OpenStoreEvent, + BuyItemEvent, + ShowRankingEvent, + UseItemEvent, + EndGameEvent + } + + public enum SkillType + { + Active, + Passive + } + + public enum ItemType + { + Active, + Passive + } + #endregion #region Result @@ -119,6 +155,12 @@ namespace Milimoe.FunGame.Core.Entity.Enum Retry } + public enum EventResult + { + Success, + Fail + } + #endregion #region Method diff --git a/FunGame.Core/Entity/Event/GeneralEventArgs.cs b/FunGame.Core/Entity/Event/GeneralEventArgs.cs new file mode 100644 index 0000000..23fbbbd --- /dev/null +++ b/FunGame.Core/Entity/Event/GeneralEventArgs.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Milimoe.FunGame.Core.Entity.Event +{ + public class GeneralEventArgs : EventArgs + { + public string EventMsg { get; set; } = ""; + public object[]? Parameters { get; set; } = null; + } + + public class GeneralEvent + { + public T Instance { get; set; } + public GeneralEvent() + { + Instance = System.Activator.CreateInstance(); + } + } +} diff --git a/FunGame.Core/Entity/Event/GeneralEventHandler.cs b/FunGame.Core/Entity/Event/GeneralEventHandler.cs deleted file mode 100644 index a3a9945..0000000 --- a/FunGame.Core/Entity/Event/GeneralEventHandler.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Milimoe.FunGame.Core.Entity.Event -{ - public class GeneralEventHandler - { - - } -} diff --git a/FunGame.Core/Entity/General/ActiveItem.cs b/FunGame.Core/Entity/General/ActiveItem.cs index 5d38234..c07b034 100644 --- a/FunGame.Core/Entity/General/ActiveItem.cs +++ b/FunGame.Core/Entity/General/ActiveItem.cs @@ -10,9 +10,15 @@ namespace Milimoe.FunGame.Core.Entity.General { public ActiveSkill? Skill { get; set; } = null; - public ActiveItem() + internal ActiveItem() { Active = true; } + + internal ActiveItem(string Name) + { + Active = true; + this.Name = Name; + } } } diff --git a/FunGame.Core/Entity/General/ActiveSkill.cs b/FunGame.Core/Entity/General/ActiveSkill.cs index fc8c5a8..2c3e805 100644 --- a/FunGame.Core/Entity/General/ActiveSkill.cs +++ b/FunGame.Core/Entity/General/ActiveSkill.cs @@ -21,9 +21,15 @@ namespace Milimoe.FunGame.Core.Entity.General public decimal Reference9 { get; set; } = 0; public decimal Reference10 { get; set; } = 0; - public ActiveSkill() + internal ActiveSkill() { Active = true; } + + internal ActiveSkill(string Name) + { + Active = true; + this.Name = Name; + } } } diff --git a/FunGame.Core/Entity/General/Character.cs b/FunGame.Core/Entity/General/Character.cs index a9e3da2..cd2968f 100644 --- a/FunGame.Core/Entity/General/Character.cs +++ b/FunGame.Core/Entity/General/Character.cs @@ -33,10 +33,5 @@ namespace Milimoe.FunGame.Core.Entity.General public decimal EvadeRate { get; set; } = 0.05M; public Hashtable? Skills { get; set; } = new Hashtable(); public Hashtable? Items { get; set; } = new Hashtable(); - - public Character() - { - - } } } diff --git a/FunGame.Core/Entity/General/CharacterStatistics.cs b/FunGame.Core/Entity/General/CharacterStatistics.cs index 08f1ccf..03b0802 100644 --- a/FunGame.Core/Entity/General/CharacterStatistics.cs +++ b/FunGame.Core/Entity/General/CharacterStatistics.cs @@ -25,10 +25,5 @@ namespace Milimoe.FunGame.Core.Entity.General public Hashtable? Wins { get; set; } = new Hashtable(); public Hashtable? Loses { get; set; } = new Hashtable(); public Hashtable? Winrates { get; set; } = new Hashtable(); - - public CharacterStatistics() - { - - } } } diff --git a/FunGame.Core/Entity/General/GameStatistics.cs b/FunGame.Core/Entity/General/GameStatistics.cs index 94617e5..b7d5f33 100644 --- a/FunGame.Core/Entity/General/GameStatistics.cs +++ b/FunGame.Core/Entity/General/GameStatistics.cs @@ -26,10 +26,5 @@ namespace Milimoe.FunGame.Core.Entity.General public Hashtable? RatingStats { get; set; } = new Hashtable(); public Hashtable? EloStats { get; set; } = new Hashtable(); public Hashtable? RankStats { get; set; } = new Hashtable(); - - public GameStatistics() - { - - } } } diff --git a/FunGame.Core/Entity/General/PassiveItem.cs b/FunGame.Core/Entity/General/PassiveItem.cs index 433a719..a15c998 100644 --- a/FunGame.Core/Entity/General/PassiveItem.cs +++ b/FunGame.Core/Entity/General/PassiveItem.cs @@ -10,9 +10,15 @@ namespace Milimoe.FunGame.Core.Entity.General { public PassiveSkill? Skill { get; set; } = null; - public PassiveItem() + internal PassiveItem() { Active = false; } + + internal PassiveItem(string Name) + { + Active = false; + this.Name = Name; + } } } diff --git a/FunGame.Core/Entity/General/PassiveSkill.cs b/FunGame.Core/Entity/General/PassiveSkill.cs index 9abf712..c319e24 100644 --- a/FunGame.Core/Entity/General/PassiveSkill.cs +++ b/FunGame.Core/Entity/General/PassiveSkill.cs @@ -19,9 +19,15 @@ namespace Milimoe.FunGame.Core.Entity.General public decimal Reference9 { get; set; } = 0; public decimal Reference10 { get; set; } = 0; - public PassiveSkill() + internal PassiveSkill() { Active = false; } + + internal PassiveSkill(string Name) + { + Active = false; + this.Name = Name; + } } } diff --git a/FunGame.Core/Entity/General/Room.cs b/FunGame.Core/Entity/General/Room.cs index 85df72a..d0ff454 100644 --- a/FunGame.Core/Entity/General/Room.cs +++ b/FunGame.Core/Entity/General/Room.cs @@ -15,16 +15,16 @@ namespace Milimoe.FunGame.Core.Entity.General public DateTime Time { get; set; } = DateTime.Now; public Hashtable PlayerList { get; set; } = new Hashtable(); public User? RoomMaster { get; set; } - public int RoomType { get; set; } - public int RoomState { get; set; } + public Milimoe.FunGame.Core.Entity.Enum.RoomType RoomType { get; set; } + public Milimoe.FunGame.Core.Entity.Enum.RoomState RoomState { get; set; } public GameStatistics? Statistics { get; set; } = null; - public Room(User? master = null) + internal Room(User? master = null) { if (master != null) RoomMaster = master; } - public Room(string roomid, User? master = null) + internal Room(string roomid, User? master = null) { Roomid = roomid; if (master != null) RoomMaster = master; diff --git a/FunGame.Core/Entity/General/Stock.cs b/FunGame.Core/Entity/General/Stock.cs index 1210d62..47efa0b 100644 --- a/FunGame.Core/Entity/General/Stock.cs +++ b/FunGame.Core/Entity/General/Stock.cs @@ -14,10 +14,5 @@ namespace Milimoe.FunGame.Core.Entity.General public User? User { get; set; } = null; public Hashtable? Characters { get; set; } = new Hashtable(); public Hashtable? Items { get; set; } = new Hashtable(); - - public Stock() - { - - } } } diff --git a/FunGame.Core/Entity/General/User.cs b/FunGame.Core/Entity/General/User.cs index dbe0685..8636672 100644 --- a/FunGame.Core/Entity/General/User.cs +++ b/FunGame.Core/Entity/General/User.cs @@ -26,17 +26,17 @@ namespace Milimoe.FunGame.Core.Entity.General public UserStatistics? Statistics { get; set; } = null; public Stock? Stock { get; set; } = null; - public User() + internal User() { } - public User(string username) + internal User(string username) { Userame = username; } - public User(string username, string password) + internal User(string username, string password) { Userame = username; Password = password; diff --git a/FunGame.Core/Entity/General/UserStatistics.cs b/FunGame.Core/Entity/General/UserStatistics.cs index 006923a..2fb8cbe 100644 --- a/FunGame.Core/Entity/General/UserStatistics.cs +++ b/FunGame.Core/Entity/General/UserStatistics.cs @@ -26,10 +26,5 @@ namespace Milimoe.FunGame.Core.Entity.General public Hashtable? RatingStats { get; set; } = new Hashtable(); public Hashtable? EloStats { get; set; } = new Hashtable(); public Hashtable? RankStats { get; set; } = new Hashtable(); - - public UserStatistics() - { - - } } } diff --git a/FunGame.Core/Interface/Event/Events.cs b/FunGame.Core/Interface/Event/Events.cs index 736bba7..957491d 100644 --- a/FunGame.Core/Interface/Event/Events.cs +++ b/FunGame.Core/Interface/Event/Events.cs @@ -1,4 +1,5 @@ -using System; +using Milimoe.FunGame.Core.Entity.Event; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -8,111 +9,177 @@ namespace Milimoe.FunGame.Core.Interface { public interface IEvent { - + public delegate Milimoe.FunGame.Core.Entity.Enum.EventResult BeforeEvent(object sender, GeneralEventArgs e); + public delegate Milimoe.FunGame.Core.Entity.Enum.EventResult AfterEvent(object sender, GeneralEventArgs e); + public delegate Milimoe.FunGame.Core.Entity.Enum.EventResult SucceedEvent(object sender, GeneralEventArgs e); + public delegate Milimoe.FunGame.Core.Entity.Enum.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 interface IDisconnectEvent : IEvent { - + public event BeforeEvent BeforeDisconnectEvent; + public event AfterEvent AfterDisconnectEvent; + public event SucceedEvent SucceedDisconnectEvent; + public event FailedEvent FailedDisconnectEvent; } public interface ILoginEvent : IEvent { - + public event BeforeEvent BeforeLoginEvent; + public event AfterEvent AfterLoginEvent; + public event SucceedEvent SucceedLoginEvent; + public event FailedEvent FailedLoginEvent; } public interface ILogoutEvent : IEvent { - + public event BeforeEvent BeforeLogoutEvent; + public event AfterEvent AfterLogoutEvent; + public event SucceedEvent SucceedLogoutEvent; + public event FailedEvent FailedLogoutEvent; } public interface IRegEvent : IEvent { - + public event BeforeEvent BeforeRegEvent; + public event AfterEvent AfterRegEvent; + public event SucceedEvent SucceedRegEvent; + public event FailedEvent FailedRegEvent; } public interface IIntoRoomEvent : IEvent { - + public event BeforeEvent BeforeIntoRoomEvent; + public event AfterEvent AfterIntoRoomEvent; + public event SucceedEvent SucceedIntoRoomEvent; + public event FailedEvent FailedIntoRoomEvent; } public interface ISendTalkEvent : IEvent { - + public event BeforeEvent BeforeSendTalkEvent; + public event AfterEvent AfterSendTalkEvent; + public event SucceedEvent SucceedSendTalkEvent; + public event FailedEvent FailedSendTalkEvent; } public interface ICreateRoomEvent : IEvent { - + public event BeforeEvent BeforeCreateRoomEvent; + public event AfterEvent AfterCreateRoomEvent; + public event SucceedEvent SucceedCreateRoomEvent; + public event FailedEvent FailedCreateRoomEvent; } public interface IQuitRoomEvent : IEvent { - + public event BeforeEvent BeforeQuitRoomEvent; + public event AfterEvent AfterQuitRoomEvent; + public event SucceedEvent SucceedQuitRoomEvent; + public event FailedEvent FailedQuitRoomEvent; } public interface IChangeRoomSettingEvent : IEvent { - + public event BeforeEvent BeforeChangeRoomSettingEvent; + public event AfterEvent AfterChangeRoomSettingEvent; + public event SucceedEvent SucceedChangeRoomSettingEvent; + public event FailedEvent FailedChangeRoomSettingEvent; } public interface IStartMatchEvent : IEvent { - + public event BeforeEvent BeforeStartMatchEvent; + public event AfterEvent AfterStartMatchEvent; + public event SucceedEvent SucceedStartMatchEvent; + public event FailedEvent FailedStartMatchEvent; } public interface IStartGameEvent : IEvent { - + public event BeforeEvent BeforeStartGameEvent; + public event AfterEvent AfterStartGameEvent; + public event SucceedEvent SucceedStartGameEvent; + public event FailedEvent FailedStartGameEvent; } public interface IChangeProfileEvent : IEvent { - + public event BeforeEvent BeforeChangeProfileEvent; + public event AfterEvent AfterChangeProfileEvent; + public event SucceedEvent SucceedChangeProfileEvent; + public event FailedEvent FailedChangeProfileEvent; } public interface IChangeAccountSettingEvent : IEvent { - + public event BeforeEvent BeforeChangeAccountSettingEvent; + public event AfterEvent AfterChangeAccountSettingEvent; + public event SucceedEvent SucceedChangeAccountSettingEvent; + public event FailedEvent FailedChangeAccountSettingEvent; } public interface IOpenStockEvent : IEvent { - + public event BeforeEvent BeforeOpenStockEvent; + public event AfterEvent AfterOpenStockEvent; + public event SucceedEvent SucceedOpenStockEvent; + public event FailedEvent FailedOpenStockEvent; } public interface ISignInEvent : IEvent { - + public event BeforeEvent BeforeSignInEvent; + public event AfterEvent AfterSignInEvent; + public event SucceedEvent SucceedSignInEvent; + public event FailedEvent FailedSignInEvent; } public interface IOpenStoreEvent : IEvent { - + public event BeforeEvent BeforeOpenStoreEvent; + public event AfterEvent AfterOpenStoreEvent; + public event SucceedEvent SucceedOpenStoreEvent; + public event FailedEvent FailedOpenStoreEvent; } public interface IBuyItemEvent : IEvent { - + public event BeforeEvent BeforeBuyItemEvent; + public event AfterEvent AfterBuyItemEvent; + public event SucceedEvent SucceedBuyItemEvent; + public event FailedEvent FailedBuyItemEvent; } public interface IShowRankingEvent : IEvent { - + public event BeforeEvent BeforeShowRankingEvent; + public event AfterEvent AfterShowRankingEvent; + public event SucceedEvent SucceedShowRankingEvent; + public event FailedEvent FailedShowRankingEvent; } public interface IUseItemEvent : IEvent { - + public event BeforeEvent BeforeUseItemEvent; + public event AfterEvent AfterUseItemEvent; + public event SucceedEvent SucceedUseItemEvent; + public event FailedEvent FailedUseItemEvent; } public interface IEndGameEvent : IEvent { - + public event BeforeEvent BeforeEndGameEvent; + public event AfterEvent AfterEndGameEvent; + public event SucceedEvent SucceedEndGameEvent; + public event FailedEvent FailedEndGameEvent; } } diff --git a/FunGame.Desktop/Controllers/Utility/SocketModel.cs b/FunGame.Desktop/Controllers/Utility/SocketController.cs similarity index 99% rename from FunGame.Desktop/Controllers/Utility/SocketModel.cs rename to FunGame.Desktop/Controllers/Utility/SocketController.cs index 7b0a217..12cb7f2 100644 --- a/FunGame.Desktop/Controllers/Utility/SocketModel.cs +++ b/FunGame.Desktop/Controllers/Utility/SocketController.cs @@ -8,5 +8,6 @@ namespace Milimoe.FunGame.Desktop.Controller { public class SocketController { + } } diff --git a/FunGame.Desktop/Models/Utility/SocketModel.cs b/FunGame.Desktop/Models/Utility/SocketModel.cs index b1f468d..41567b2 100644 --- a/FunGame.Desktop/Models/Utility/SocketModel.cs +++ b/FunGame.Desktop/Models/Utility/SocketModel.cs @@ -8,5 +8,6 @@ namespace Milimoe.FunGame.Desktop.Model { public class SocketModel { + } }