mirror of
https://github.com/project-redbud/FunGame-Core.git
synced 2025-12-05 00:06:02 +00:00
完善事件和部分工厂
This commit is contained in:
parent
0ddd2a5d6b
commit
0c05e2fb5c
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
23
FunGame.Core/Entity/Event/GeneralEventArgs.cs
Normal file
23
FunGame.Core/Entity/Event/GeneralEventArgs.cs
Normal file
@ -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<T>
|
||||
{
|
||||
public T Instance { get; set; }
|
||||
public GeneralEvent()
|
||||
{
|
||||
Instance = System.Activator.CreateInstance<T>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,5 +8,6 @@ namespace Milimoe.FunGame.Desktop.Controller
|
||||
{
|
||||
public class SocketController
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@ -8,5 +8,6 @@ namespace Milimoe.FunGame.Desktop.Model
|
||||
{
|
||||
public class SocketModel
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user