更新Room相关的参数、常数设定 (#9)

* 修改部分常量和添加Room相关的SQLScript

* 更新Room相关的参数、常数设定
This commit is contained in:
milimoe 2023-04-06 23:57:36 +08:00 committed by GitHub
parent afeccc1b9a
commit 01ba44fab6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 58 additions and 21 deletions

View File

@ -19,6 +19,15 @@ namespace Milimoe.FunGame.Core.Api.Utility
return RoomFactory.GetInstance(DsRoom, DsUser, Index);
}
/// <summary>
/// 获取大厅(-1号房
/// </summary>
/// <returns></returns>
internal static Room GetHall()
{
return GetRoom(null, null);
}
/// <summary>
/// 获取Skill实例默认返回PassiveSkill
/// </summary>

View File

@ -16,15 +16,7 @@ namespace Milimoe.FunGame.Core.Entity
public User? RoomMaster { get; set; }
public RoomType RoomType { get; set; }
public RoomState RoomState { get; set; }
public bool HasPass
{
get
{
if (RoomType == RoomType.MixHasPass || RoomType == RoomType.TeamHasPass)
return true;
else return false;
}
}
public bool HasPass => Password.Trim() != "";
public string Password { get; set; } = "";
public GameStatistics? Statistics { get; set; } = null;
@ -41,6 +33,16 @@ namespace Milimoe.FunGame.Core.Entity
RoomState = (RoomState)Convert.ToInt32(DrRoom[RoomQuery.Column_RoomState]);
Password = (string)DrRoom[RoomQuery.Column_Password];
}
else
{
Id = 0;
Roomid = "-1";
CreateTime = DateTime.MinValue;
RoomMaster = null;
RoomType = RoomType.None;
RoomState = RoomState.Created;
Password = "";
}
}
public bool Equals(Room other)

View File

@ -1,12 +1,37 @@
namespace Milimoe.FunGame.Core.Library.Common.Event
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Library.Common.Event
{
public class RoomEventArgs
{
public string RoomID { get; set; } = "";
public long RoomMaster { get; set; } = 0;
public RoomType RoomType { get; set; } = RoomType.None;
public RoomState RoomState { get; set; } = RoomState.Created;
public bool HasPassword => Password.Trim() != "";
public string Password { get; set; } = "";
public RoomEventArgs(string RoomID = "")
public RoomEventArgs(string RoomType, string Password)
{
this.RoomID = RoomID;
this.RoomType = RoomType switch
{
GameMode.GameMode_Mix => Constant.RoomType.Mix,
GameMode.GameMode_Team => Constant.RoomType.Team,
GameMode.GameMode_MixHasPass => Constant.RoomType.MixHasPass,
GameMode.GameMode_TeamHasPass => Constant.RoomType.TeamHasPass,
_ => Constant.RoomType.None
};
this.Password = Password;
}
public RoomEventArgs(Room Room)
{
RoomID = Room.Roomid;
RoomMaster = Room.RoomMaster != null ? Room.RoomMaster.Id : 0;
RoomType = Room.RoomType;
RoomState = Room.RoomState;
Password = Room.Password;
}
}
}

View File

@ -7,6 +7,7 @@ namespace Milimoe.FunGame.Core.Library.Constant
{
// Static Variable
public static Empty EntityInstance { get; } = new();
public static Room HallInstance { get; } = Api.Utility.Factory.GetHall();
public static Encoding DefaultEncoding { get; } = Encoding.Unicode;
// Const

View File

@ -25,6 +25,7 @@
public enum RoomType
{
None,
Mix,
Team,
MixHasPass,
@ -66,7 +67,8 @@
CheckReg,
CreateRoom,
UpdateRoom,
ChangeRoomSetting
ChangeRoomSetting,
MatchRoom
}
public enum DataRequestType

View File

@ -17,15 +17,13 @@ namespace Milimoe.FunGame.Core.Library.Server
_Server = Server;
}
public List<Room> GetRoomList()
{
return _List.Values.Cast<Room>().ToList();
}
public Room? this[string RoomID] => GetRoom(RoomID);
public List<string> GetRoomIDList()
{
return _List.Keys.Cast<string>().ToList();
}
public Hashtable GetHashTable => _List;
public List<Room> GetRoomList => _List.Values.Cast<Room>().ToList();
public List<string> GetRoomIDList => _List.Keys.Cast<string>().ToList();
public void Clear()
{