using Milimoe.FunGame.Core.Model; /** * 此文件用于保存字符串常量(String Set) */ namespace Milimoe.FunGame.Core.Library.Constant { public class CommonSet { public static string GetLogLevelPrefix(LogLevel level) { return level switch { LogLevel.Trace => "T/", LogLevel.Debug => "D/", LogLevel.Info => "I/", LogLevel.Warning => "W/", LogLevel.Error => "E/", LogLevel.Critical => "C/", _ => "I/" }; } public static string GetQuestStatus(QuestState status) { return status switch { QuestState.InProgress => "进行中", QuestState.Completed => "已完成", QuestState.Settled => "已结算", QuestState.Missed => "未完成", _ => "未开始" }; } } /// /// 配合 使用,也别忘了修改 /// public class InterfaceSet { public class Type { public const string IClient = "IClientImpl"; public const string IServer = "IServerImpl"; } public class Method { public const string RemoteServerIP = "RemoteServerIP"; public const string DBConnection = "DBConnection"; public const string GetServerSettings = "GetServerSettings"; public const string SecretKey = "SecretKey"; } } /// /// 需要同步更新 /// public class SocketSet { public const int MaxRetryTimes = 20; public const int MaxConnection_1C2G = 10; public const int MaxConnection_2C2G = 20; public const int MaxConnection_4C4G = 40; public const string Plugins_Mark = "plugins_mark"; public const string Socket = "Socket"; public const string Unknown = "Unknown"; public const string DataRequest = "DataRequest"; public const string GamingRequest = "GamingRequest"; public const string Connect = "Connect"; public const string Disconnect = "Disconnect"; public const string System = "System"; public const string HeartBeat = "HeartBeat"; public const string ForceLogout = "ForceLogout"; public const string Chat = "Chat"; public const string UpdateRoomMaster = "UpdateRoomMaster"; public const string MatchRoom = "MatchRoom"; public const string StartGame = "StartGame"; public const string EndGame = "EndGame"; public const string Gaming = "Gaming"; public const string AnonymousGameServer = "AnonymousGameServer"; /// /// 将通信类型的枚举转换为字符串 /// /// 通信类型 /// 等效字符串 public static string GetTypeString(SocketMessageType type) { return type switch { SocketMessageType.DataRequest => DataRequest, SocketMessageType.Connect => Connect, SocketMessageType.Disconnect => Disconnect, SocketMessageType.System => System, SocketMessageType.HeartBeat => HeartBeat, SocketMessageType.ForceLogout => ForceLogout, SocketMessageType.Chat => Chat, SocketMessageType.UpdateRoomMaster => UpdateRoomMaster, SocketMessageType.MatchRoom => MatchRoom, SocketMessageType.StartGame => StartGame, SocketMessageType.EndGame => EndGame, SocketMessageType.Gaming => Gaming, _ => Unknown }; } } /// /// 需要同步更新 /// public class DataRequestSet { public const string UnKnown = "UnKnown"; /** * RunTime */ public const string RunTime_Logout = "RunTime::Logout"; /** * Main */ public const string Main_GetNotice = "Main::GetNotice"; public const string Main_IntoRoom = "Main::IntoRoom"; public const string Main_QuitRoom = "Main::QuitRoom"; public const string Main_CreateRoom = "Main::CreateRoom"; public const string Main_UpdateRoom = "Main::UpdateRoom"; public const string Main_MatchRoom = "Main::MatchRoom"; public const string Main_Chat = "Main::Chat"; public const string Main_Ready = "Main::Ready"; public const string Main_CancelReady = "Main::CancelReady"; public const string Main_StartGame = "Main::StartGame"; /** * Register */ public const string Reg_Reg = "Reg::Reg"; /** * Login */ public const string Login_Login = "Login::Login"; public const string Login_GetFindPasswordVerifyCode = "Login::GetFindPasswordVerifyCode"; public const string Login_UpdatePassword = "Login::UpdatePassword"; /** * Room */ public const string Room_UpdateRoomSettings = "Room::UpdateRoomSettings"; public const string Room_GetRoomPlayerCount = "Room::GetRoomPlayerCount"; public const string Room_UpdateRoomMaster = "Room::UpdateRoomMaster"; /** * UserCenter */ public const string UserCenter_GetUserProfile = "UserCenter::GetUserProfile"; public const string UserCenter_GetUserStatistics = "UserCenter::GetUserStatistics"; public const string UserCenter_UpdateUser = "UserCenter::UpdateUser"; public const string UserCenter_UpdatePassword = "UserCenter::UpdatePassword"; public const string UserCenter_DailySignIn = "UserCenter::DailySignIn"; /** * Inventory */ public const string Inventory_GetStore = "Inventory::GetStore"; public const string Inventory_GetMarket = "Inventory::GetMarket"; public const string Inventory_StoreBuy = "Inventory::StoreBuy"; public const string Inventory_MarketBuy = "Inventory::MarketBuy"; public const string Inventory_GetInventory = "Inventory::GetInventory"; public const string Inventory_Use = "Inventory::Use"; public const string Inventory_StoreSell = "Inventory::StoreSell"; public const string Inventory_MarketSell = "Inventory::MarketSell"; public const string Inventory_UpdateMarketPrice = "Inventory::UpdateMarketPrice"; public const string Inventory_GetOffer = "Inventory::GetOffer"; public const string Inventory_MakeOffer = "Inventory::MakeOffer"; public const string Inventory_ReviseOffer = "Inventory::ReviseOffer"; public const string Inventory_RespondOffer = "Inventory::RespondOffer"; /// /// 获取Type的等效字符串 /// /// /// public static string GetTypeString(DataRequestType type) { return type switch { DataRequestType.RunTime_Logout => RunTime_Logout, DataRequestType.Main_GetNotice => Main_GetNotice, DataRequestType.Main_CreateRoom => Main_CreateRoom, DataRequestType.Main_UpdateRoom => Main_UpdateRoom, DataRequestType.Main_IntoRoom => Main_IntoRoom, DataRequestType.Main_QuitRoom => Main_QuitRoom, DataRequestType.Main_MatchRoom => Main_MatchRoom, DataRequestType.Main_Chat => Main_Chat, DataRequestType.Main_Ready => Main_Ready, DataRequestType.Main_CancelReady => Main_CancelReady, DataRequestType.Main_StartGame => Main_StartGame, DataRequestType.Reg_Reg => Reg_Reg, DataRequestType.Login_Login => Login_Login, DataRequestType.Login_GetFindPasswordVerifyCode => Login_GetFindPasswordVerifyCode, DataRequestType.Login_UpdatePassword => Login_UpdatePassword, DataRequestType.Room_UpdateRoomSettings => Room_UpdateRoomSettings, DataRequestType.Room_GetRoomPlayerCount => Room_GetRoomPlayerCount, DataRequestType.Room_UpdateRoomMaster => Room_UpdateRoomMaster, DataRequestType.UserCenter_GetUserProfile => UserCenter_GetUserProfile, DataRequestType.UserCenter_GetUserStatistics => UserCenter_GetUserStatistics, DataRequestType.UserCenter_UpdateUser => UserCenter_UpdateUser, DataRequestType.UserCenter_UpdatePassword => UserCenter_UpdatePassword, DataRequestType.UserCenter_DailySignIn => UserCenter_DailySignIn, DataRequestType.Inventory_GetStore => Inventory_GetStore, DataRequestType.Inventory_GetMarket => Inventory_GetMarket, DataRequestType.Inventory_StoreBuy => Inventory_StoreBuy, DataRequestType.Inventory_MarketBuy => Inventory_MarketBuy, DataRequestType.Inventory_GetInventory => Inventory_GetInventory, DataRequestType.Inventory_Use => Inventory_Use, DataRequestType.Inventory_StoreSell => Inventory_StoreSell, DataRequestType.Inventory_MarketSell => Inventory_MarketSell, DataRequestType.Inventory_UpdateMarketPrice => Inventory_UpdateMarketPrice, DataRequestType.Inventory_GetOffer => Inventory_GetOffer, DataRequestType.Inventory_MakeOffer => Inventory_MakeOffer, DataRequestType.Inventory_ReviseOffer => Inventory_ReviseOffer, DataRequestType.Inventory_RespondOffer => Inventory_RespondOffer, _ => UnKnown }; } } public class GamingSet { public const string None = "Gaming::None"; public const string Connect = "Gaming::Connect"; public const string Disconnect = "Gaming::Disconnect"; public const string Reconnect = "Gaming::Reconnect"; public const string BanCharacter = "Gaming::BanCharacter"; public const string PickCharacter = "Gaming::PickCharacter"; public const string Random = "Gaming::Random"; public const string Round = "Gaming::Round"; public const string LevelUp = "Gaming::LevelUp"; public const string Move = "Gaming::Move"; public const string Attack = "Gaming::Attack"; public const string Skill = "Gaming::Skill"; public const string Item = "Gaming::Item"; public const string Magic = "Gaming::Magic"; public const string Buy = "Gaming::Buy"; public const string SuperSkill = "Gaming::SuperSkill"; public const string Pause = "Gaming::Pause"; public const string Unpause = "Gaming::Unpause"; public const string Surrender = "Gaming::Surrender"; public const string UpdateInfo = "Gaming::UpdateInfo"; public const string Punish = "Gaming::Punish"; /// /// 获取Type的等效字符串 /// /// /// public static string GetTypeString(GamingType type) { return type switch { GamingType.Connect => Connect, GamingType.Disconnect => Disconnect, GamingType.Reconnect => Reconnect, GamingType.BanCharacter => BanCharacter, GamingType.PickCharacter => PickCharacter, GamingType.Random => Random, GamingType.Round => Round, GamingType.LevelUp => LevelUp, GamingType.Move => Move, GamingType.Attack => Attack, GamingType.Skill => Skill, GamingType.Item => Item, GamingType.Magic => Magic, GamingType.Buy => Buy, GamingType.SuperSkill => SuperSkill, GamingType.Pause => Pause, GamingType.Unpause => Unpause, GamingType.Surrender => Surrender, GamingType.UpdateInfo => UpdateInfo, GamingType.Punish => Punish, _ => None }; } } public class ReflectionSet { public const string FUNGAME_IMPL = "FunGame.Implement"; public static string EXEFolderPath { get; } = AppDomain.CurrentDomain.BaseDirectory; // 程序目录 public static string PluginFolderPath { get; } = AppDomain.CurrentDomain.BaseDirectory + @"plugins\"; // 插件目录 public static string GameModuleFolderPath { get; } = AppDomain.CurrentDomain.BaseDirectory + @"modules\"; // 游戏模组目录 public static string GameMapFolderPath { get; } = AppDomain.CurrentDomain.BaseDirectory + @"maps\"; // 游戏地图目录 } public class FormSet { public const string Main = "Main"; public const string Register = "Register"; public const string Login = "Login"; public const string Inventory = "Inventory"; public const string Store = "Store"; public const string RoomSetting = "RoomSetting"; public const string UserCenter = "UserCenter"; } public class RoomSet { public const string All = "全部"; public const string Mix = "混战模式"; public const string Team = "团队模式"; public const string Solo = "对弈模式"; public const string FastAuto = "快速自走模式"; public const string Custom = "自定义模式"; /// /// 获取Type的等效字符串 /// /// /// public static string GetTypeString(RoomType type) { return type switch { RoomType.Mix => Mix, RoomType.Team => Team, RoomType.Solo => Solo, RoomType.FastAuto => FastAuto, RoomType.Custom => Custom, _ => All }; } /// /// 获取字符串对应的枚举 /// /// /// public static RoomType GetRoomType(string typestring) { return typestring switch { Mix => RoomType.Mix, Team => RoomType.Team, FastAuto => RoomType.FastAuto, Custom => RoomType.Custom, _ => RoomType.All }; } } public class UserSet { public const long UnknownUserId = 0; public const long GuestUserId = -5; public const long LocalUserId = -6; public const string UnknownUserName = "未知用户"; public const string GuestUserName = "游客用户"; public const string LocalUserName = "本地用户"; } public class CharacterActionSet { public const string ActionQueue = "ActionQueue"; public const string Actor = "Actor"; public const string CastSkill = "CastSkill"; public const string Enemys = "Enemys"; public const string Teammates = "Teammates"; public const string GameMap = "GameMap"; } public class CharacterSet { public static string GetPrimaryAttributeName(PrimaryAttribute type) { return type switch { PrimaryAttribute.AGI => "敏捷", PrimaryAttribute.INT => "智力", _ => "力量" }; } public static string GetMagicDamageName(MagicType type) { return type switch { MagicType.Starmark => "星痕魔法伤害", MagicType.PurityNatural => "现代结晶魔法伤害", MagicType.PurityContemporary => "纯粹结晶魔法伤害", MagicType.Bright => "光魔法伤害", MagicType.Shadow => "影魔法伤害", MagicType.Element => "元素魔法伤害", MagicType.Fleabane => "紫宛魔法伤害", MagicType.Particle => "时空魔法伤害", _ => "魔法伤害", }; } public static string GetMagicResistanceName(MagicType type) { return type switch { MagicType.Starmark => "星痕抗性", MagicType.PurityNatural => "现代结晶抗性", MagicType.PurityContemporary => "纯粹结晶抗性", MagicType.Bright => "光抗性", MagicType.Shadow => "影抗性", MagicType.Element => "元素抗性", MagicType.Fleabane => "紫宛抗性", MagicType.Particle => "时空抗性", _ => "魔法抗性", }; } public static string GetContinuousKilling(int kills) { if (kills > 10) return "超越神的杀戮"; else { return kills switch { 2 => "双杀", 3 => "三杀", 4 => "大杀特杀", 5 => "杀人如麻", 6 => "主宰比赛", 7 => "无人能挡", 8 => "变态杀戮", 9 => "如同神一般", 10 => "超越神的杀戮", _ => "" }; } } public static string GetCharacterState(CharacterState state) { return state switch { CharacterState.Casting => "角色正在吟唱魔法", CharacterState.PreCastSuperSkill => "角色预释放了爆发技", CharacterState.ActionRestricted => "角色现在行动受限", CharacterState.BattleRestricted => "角色现在战斗不能", CharacterState.SkillRestricted => "角色现在技能受限", _ => "角色现在完全行动不能" }; } public static string GetRarityTypeName(RarityType type) { return type switch { RarityType.TwoStar => "★★", RarityType.ThreeStar => "★★★", RarityType.FourStar => "★★★★", RarityType.FiveStar => "★★★★★", _ => "★" }; } } public class ItemSet { public static string GetItemTypeName(ItemType type) { return type switch { ItemType.MagicCardPack => "魔法卡包", ItemType.Weapon => "武器", ItemType.Armor => "防具", ItemType.Shoes => "鞋子", ItemType.Accessory => "饰品", ItemType.Consumable => "消耗品", ItemType.MagicCard => "魔法卡", ItemType.Collectible => "收藏品", ItemType.SpecialItem => "特殊物品", ItemType.QuestItem => "任务物品", ItemType.GiftBox => "礼包", ItemType.Others => "其他", _ => "" }; } public static ItemType GetItemTypeFromName(string name) { return name switch { "魔法卡包" => ItemType.MagicCardPack, "武器" => ItemType.Weapon, "防具" => ItemType.Armor, "鞋子" => ItemType.Shoes, "饰品" => ItemType.Accessory, "消耗品" => ItemType.Consumable, "魔法卡" => ItemType.MagicCard, "收藏品" => ItemType.Collectible, "特殊物品" => ItemType.SpecialItem, "任务物品" => ItemType.QuestItem, "礼包" => ItemType.GiftBox, _ => ItemType.Others, }; } public static string GetWeaponTypeName(WeaponType type) { return type switch { WeaponType.OneHandedSword => "单手剑", WeaponType.TwoHandedSword => "双手重剑", WeaponType.Bow => "弓", WeaponType.Pistol => "手枪", WeaponType.Rifle => "步枪", WeaponType.DualDaggers => "双持短刀", WeaponType.Talisman => "法器", WeaponType.Staff => "法杖", WeaponType.Polearm => "长柄", WeaponType.Gauntlet => "拳套", WeaponType.HiddenWeapon => "暗器", _ => "" }; } public static WeaponType GetWeaponTypeFromName(string name) { return name switch { "单手剑" => WeaponType.OneHandedSword, "双手重剑" => WeaponType.TwoHandedSword, "弓" => WeaponType.Bow, "手枪" => WeaponType.Pistol, "步枪" => WeaponType.Rifle, "双持短刀" => WeaponType.DualDaggers, "法器" => WeaponType.Talisman, "法杖" => WeaponType.Staff, "长柄" => WeaponType.Polearm, "拳套" => WeaponType.Gauntlet, "暗器" => WeaponType.HiddenWeapon, _ => WeaponType.None }; } public static string GetEquipSlotTypeName(EquipSlotType type) { return type switch { EquipSlotType.MagicCardPack => "魔法卡包", EquipSlotType.Weapon => "武器", EquipSlotType.Armor => "防具", EquipSlotType.Shoes => "鞋子", EquipSlotType.Accessory1 => "饰品1", EquipSlotType.Accessory2 => "饰品2", _ => "" }; } public static EquipSlotType GetEquipSlotTypeFromName(string name) { return name switch { "魔法卡包" => EquipSlotType.MagicCardPack, "武器" => EquipSlotType.Weapon, "防具" => EquipSlotType.Armor, "鞋子" => EquipSlotType.Shoes, "饰品1" => EquipSlotType.Accessory1, "饰品2" => EquipSlotType.Accessory2, _ => EquipSlotType.None }; } public static string GetQualityTypeName(QualityType type) { return type switch { QualityType.Green => "优秀", QualityType.Blue => "稀有", QualityType.Purple => "史诗", QualityType.Orange => "传说", QualityType.Red => "神话", QualityType.Gold => "不朽", _ => "普通" }; } public static QualityType GetQualityTypeFromName(string name) { return name switch { "优秀" => QualityType.Green, "稀有" => QualityType.Blue, "史诗" => QualityType.Purple, "传说" => QualityType.Orange, "神话" => QualityType.Red, "不朽" => QualityType.Gold, _ => QualityType.White }; } public static string[] QualityTypeNameArray => ["普通", "优秀", "稀有", "史诗", "传说", "神话", "不朽"]; } public class SkillSet { public static string GetSkillTypeName(SkillType type) { return type switch { SkillType.Magic => "魔法", SkillType.Skill => "战技", SkillType.SuperSkill => "爆发技", SkillType.Item => "物品", _ => "被动" }; } public static SkillType GetSkillTypeFromName(string name) { return name switch { "魔法" => SkillType.Magic, "战技" => SkillType.Skill, "爆发技" => SkillType.SuperSkill, "物品" => SkillType.Item, _ => SkillType.Passive, }; } public static int GetSkillMaxLevel(SkillType type, EquilibriumConstant? gameplayConstant = null) { gameplayConstant ??= General.GameplayEquilibriumConstant; return type switch { SkillType.Magic => gameplayConstant.MaxMagicLevel, SkillType.Skill => gameplayConstant.MaxSkillLevel, SkillType.SuperSkill => gameplayConstant.MaxSuperSkillLevel, SkillType.Item => gameplayConstant.MaxSkillLevel, _ => gameplayConstant.MaxPassiveSkillLevel }; } public static string GetEffectTypeName(EffectType type) { return type switch { EffectType.None => "无特殊效果", EffectType.Item => "装备特效", EffectType.Mark => "标记", EffectType.Stun => "眩晕", EffectType.Freeze => "冰冻", EffectType.Silence => "沉默", EffectType.Root => "定身", EffectType.Fear => "恐惧", EffectType.Sleep => "睡眠", EffectType.Knockback => "击退", EffectType.Knockdown => "击倒", EffectType.Taunt => "嘲讽", EffectType.Slow => "减速", EffectType.Weaken => "衰弱", EffectType.Poison => "中毒", EffectType.Burn => "燃烧", EffectType.Bleed => "流血", EffectType.Blind => "致盲", EffectType.Cripple => "致残", EffectType.Shield => "护盾", EffectType.HealOverTime => "持续治疗", EffectType.Haste => "加速", EffectType.Invulnerable => "无敌", EffectType.Unselectable => "不可选中", EffectType.DamageBoost => "伤害提升", EffectType.DefenseBoost => "防御提升", EffectType.CritBoost => "暴击提升", EffectType.ManaRegen => "魔法恢复", EffectType.ArmorBreak => "破甲", EffectType.MagicResistBreak => "降低魔抗", EffectType.Curse => "诅咒", EffectType.Exhaustion => "疲劳", EffectType.ManaBurn => "魔力燃烧", EffectType.Charm => "魅惑", EffectType.Disarm => "缴械", EffectType.Confusion => "混乱", EffectType.Petrify => "石化", EffectType.SilenceMagic => "法术沉默", EffectType.Banish => "放逐", EffectType.Doom => "毁灭", _ => "未知效果" }; } } }