diff --git a/Core/Config/ConfigManager.cs b/Core/Config/ConfigManager.cs index 9ec99fc..78b19b7 100644 --- a/Core/Config/ConfigManager.cs +++ b/Core/Config/ConfigManager.cs @@ -16,7 +16,12 @@ public class ConfigManager logger.LogInformation("Loaded {count} config collections", _collectionsByEnum.Count); } - public ConfigCollection GetCollection() + public IEnumerable Enumerate() where TConfig : IConfig + { + return GetCollection().Enumerate(); + } + + public ConfigCollection GetCollection() where TConfigType : IConfig { return _collectionsByType[typeof(TConfigType)]; } diff --git a/Core/data/config/weapon/weaponconf.json b/Core/data/config/weapon/weaponconf.json index 83c851e..3937762 100644 --- a/Core/data/config/weapon/weaponconf.json +++ b/Core/data/config/weapon/weaponconf.json @@ -10,14 +10,14 @@ "ResonLevelLimit": 5, "FirstPropId": { "Id": 7, - "Value": 54, + "Value": 47, "IsRatio": false }, "FirstCurve": 1, "SecondPropId": { - "Id": 11, - "Value": 432, - "IsRatio": false + "Id": 10007, + "Value": 0.08100000023841858, + "IsRatio": true }, "SecondCurve": 2, "ResonId": 21010015, @@ -26,7 +26,7 @@ "Desc": "WeaponConf_21010015_Desc", "DescParams": [ { - "ArrayString": [ "12%", "15%", "18%", "21%", "24%" ] + "ArrayString": [ "12.8%", "16%", "19.2%", "22.4%", "25.6%" ] }, { "ArrayString": [ "8%", "10%", "12%", "14%", "16%" ] @@ -35,7 +35,7 @@ "ArrayString": [ "2", "2", "2", "2", "2" ] }, { - "ArrayString": [ "8", "8", "8", "8", "8" ] + "ArrayString": [ "12", "12", "12", "12", "12" ] } ], "TypeDescription": "WeaponConf_21010015_TypeDescription", @@ -84,16 +84,16 @@ "Desc": "WeaponConf_21020015_Desc", "DescParams": [ { - "ArrayString": [ "16%", "20%", "24%", "28%", "32%" ] + "ArrayString": [ "12.8%", "16%", "19.2%", "22.4%", "25.6%" ] }, { - "ArrayString": [ "8%", "10%", "12%", "14%", "16%" ] + "ArrayString": [ "6%", "7.5%", "9%", "10.5%", "12%" ] }, { "ArrayString": [ "2", "2", "2", "2", "2" ] }, { - "ArrayString": [ "8", "8", "8", "8", "8" ] + "ArrayString": [ "10", "10", "10", "10", "10" ] } ], "TypeDescription": "WeaponConf_21020015_TypeDescription", @@ -142,16 +142,16 @@ "Desc": "WeaponConf_21030015_Desc", "DescParams": [ { - "ArrayString": [ "12%", "15%", "18%", "21%", "24%" ] + "ArrayString": [ "12.8%", "16%", "19.2%", "22.4%", "25.6%" ] }, { - "ArrayString": [ "2.4%", "3%", "3.6%", "4.2%", "4.8%" ] + "ArrayString": [ "10%", "12.5%", "15%", "17.5%", "20%" ] }, { - "ArrayString": [ "5", "5", "5", "5", "5" ] + "ArrayString": [ "1", "1", "1", "1", "1" ] }, { - "ArrayString": [ "8", "8", "8", "8", "8" ] + "ArrayString": [ "14", "14", "14", "14", "14" ] } ], "TypeDescription": "WeaponConf_21030015_TypeDescription", @@ -189,9 +189,9 @@ }, "FirstCurve": 1, "SecondPropId": { - "Id": 11, - "Value": 864, - "IsRatio": false + "Id": 10007, + "Value": 0.08100000023841858, + "IsRatio": true }, "SecondCurve": 2, "ResonId": 21040015, @@ -200,7 +200,7 @@ "Desc": "WeaponConf_21040015_Desc", "DescParams": [ { - "ArrayString": [ "8%", "10%", "12%", "14%", "16%" ] + "ArrayString": [ "12.8%", "16%", "19.2%", "22.4%", "25.6%" ] }, { "ArrayString": [ "10%", "12.5%", "15%", "17.5%", "20%" ] @@ -250,9 +250,9 @@ }, "FirstCurve": 1, "SecondPropId": { - "Id": 11, - "Value": 1280, - "IsRatio": false + "Id": 10007, + "Value": 0.11999999731779099, + "IsRatio": true }, "SecondCurve": 2, "ResonId": 21050015, @@ -261,7 +261,7 @@ "Desc": "WeaponConf_21050015_Desc", "DescParams": [ { - "ArrayString": [ "16%", "20%", "24%", "28%", "32%" ] + "ArrayString": [ "12.8%", "16%", "19.2%", "22.4%", "25.6%" ] }, { "ArrayString": [ "3.2%", "4%", "4.8%", "5.6%", "6.4%" ] @@ -1670,13 +1670,13 @@ "ResonLevelLimit": 5, "FirstPropId": { "Id": 7, - "Value": 31, + "Value": 27, "IsRatio": false }, "FirstCurve": 1, "SecondPropId": { "Id": 10010, - "Value": 0.10260000079870224, + "Value": 0.13680000603199005, "IsRatio": true }, "SecondCurve": 2, @@ -1834,8 +1834,8 @@ }, "FirstCurve": 1, "SecondPropId": { - "Id": 10007, - "Value": 0.1080000028014183, + "Id": 10010, + "Value": 0.13680000603199005, "IsRatio": true }, "SecondCurve": 2, @@ -1886,7 +1886,7 @@ }, "FirstCurve": 1, "SecondPropId": { - "Id": 10002, + "Id": 10007, "Value": 0.08100000023841858, "IsRatio": true }, @@ -2248,13 +2248,13 @@ "ResonLevelLimit": 5, "FirstPropId": { "Id": 7, - "Value": 26, + "Value": 24, "IsRatio": false }, "FirstCurve": 1, "SecondPropId": { "Id": 10010, - "Value": 0.06840000301599503, + "Value": 0.08550000190734863, "IsRatio": true }, "SecondCurve": 2, @@ -3128,7 +3128,7 @@ "ArrayString": [ "2", "2", "2", "2", "2" ] }, { - "ArrayString": [ "10", "10", "10", "10", "10" ] + "ArrayString": [ "14", "14", "14", "14", "14" ] } ], "TypeDescription": "WeaponConf_21010016_TypeDescription", @@ -3180,13 +3180,16 @@ "ArrayString": [ "12%", "15%", "18%", "21%", "24%" ] }, { - "ArrayString": [ "20%", "25%", "30%", "35%", "40%" ] + "ArrayString": [ "12%", "15%", "18%", "21%", "24%" ] + }, + { + "ArrayString": [ "12%", "15%", "18%", "21%", "24%" ] }, { "ArrayString": [ "2", "2", "2", "2", "2" ] }, { - "ArrayString": [ "18", "18", "18", "18", "18" ] + "ArrayString": [ "5", "5", "5", "5", "5" ] } ], "TypeDescription": "WeaponConf_21050016_TypeDescription", diff --git a/GameServer/Controllers/InventoryController.cs b/GameServer/Controllers/InventoryController.cs index 6d8c742..d04aafd 100644 --- a/GameServer/Controllers/InventoryController.cs +++ b/GameServer/Controllers/InventoryController.cs @@ -1,6 +1,10 @@ -using GameServer.Controllers.Attributes; +using Core.Config; +using GameServer.Controllers.Attributes; +using GameServer.Models; using GameServer.Network; -using GameServer.Network.Messages; +using GameServer.Systems.Entity; +using GameServer.Systems.Entity.Component; +using GameServer.Systems.Event; using Protocol; namespace GameServer.Controllers; @@ -15,11 +19,71 @@ internal class InventoryController : Controller public RpcResult OnNormalItemRequest() => Response(MessageId.NormalItemResponse, new NormalItemResponse()); [NetEvent(MessageId.WeaponItemRequest)] - public RpcResult OnWeaponItemRequest() => Response(MessageId.WeaponItemResponse, new WeaponItemResponse()); + public RpcResult OnWeaponItemRequest(ModelManager modelManager) => Response(MessageId.WeaponItemResponse, new WeaponItemResponse + { + WeaponItemList = + { + modelManager.Inventory.WeaponList + } + }); [NetEvent(MessageId.PhantomItemRequest)] public RpcResult OnPhantomItemRequest() => Response(MessageId.PhantomItemResponse, new PhantomItemResponse()); [NetEvent(MessageId.ItemExchangeInfoRequest)] public RpcResult OnItemExchangeInfoRequest() => Response(MessageId.ItemExchangeInfoResponse, new ItemExchangeInfoResponse()); + + [NetEvent(MessageId.EquipTakeOnRequest)] + public async Task OnEquipTakeOnRequest(EquipTakeOnRequest request, ModelManager modelManager, CreatureController creatureController) + { + WeaponItem? weapon = modelManager.Inventory.GetWeaponById(request.Data.EquipIncId); + if (weapon == null) return Response(MessageId.EquipTakeOnResponse, new EquipTakeOnResponse + { + ErrorCode = (int)ErrorCode.ErrItemIdInvaild + }); + + PlayerEntity? entity = creatureController.GetPlayerEntityByRoleId(request.Data.RoleId); + if (entity != null) + { + EntityEquipComponent equipComponent = entity.ComponentSystem.Get(); + equipComponent.WeaponId = weapon.Id; + + await Session.Push(MessageId.EntityEquipChangeNotify, new EntityEquipChangeNotify + { + EntityId = entity.Id, + EquipComponent = equipComponent.Pb.EquipComponent + }); + } + + return Response(MessageId.EquipTakeOnResponse, new EquipTakeOnResponse + { + DataList = + { + new RoleLoadEquipData + { + RoleId = request.Data.RoleId, + Pos = request.Data.Pos, + EquipIncId = request.Data.EquipIncId + } + } + }); + } + + [GameEvent(GameEventType.EnterGame)] + public async Task OnEnterGame() + { + await Session.Push(MessageId.ItemPkgOpenNotify, new ItemPkgOpenNotify + { + OpenPkg = { 0, 2, 1, 3, 4, 5, 6, 7 } + }); + } + + [GameEvent(GameEventType.DebugUnlockAllWeapons)] + public void DebugUnlockAllWeapons(ConfigManager configManager, ModelManager modelManager) + { + foreach (WeaponConfig weaponConf in configManager.Enumerate()) + { + modelManager.Inventory.AddNewWeapon(weaponConf.ItemId); + } + } } diff --git a/GameServer/Controllers/LoginController.cs b/GameServer/Controllers/LoginController.cs index 5def7c0..99e8b81 100644 --- a/GameServer/Controllers/LoginController.cs +++ b/GameServer/Controllers/LoginController.cs @@ -16,6 +16,10 @@ internal class LoginController : Controller { await eventSystem.Emit(GameEventType.Login); + // Debug + await eventSystem.Emit(GameEventType.DebugUnlockAllRoles); + await eventSystem.Emit(GameEventType.DebugUnlockAllWeapons); + return Response(MessageId.LoginResponse, new LoginResponse { Code = 0, diff --git a/GameServer/Controllers/RoleController.cs b/GameServer/Controllers/RoleController.cs index 1b9cf95..764b110 100644 --- a/GameServer/Controllers/RoleController.cs +++ b/GameServer/Controllers/RoleController.cs @@ -2,7 +2,6 @@ using GameServer.Controllers.Attributes; using GameServer.Models; using GameServer.Network; -using GameServer.Network.Messages; using GameServer.Systems.Event; using Protocol; @@ -14,23 +13,27 @@ internal class RoleController : Controller // RoleController. } - [GameEvent(GameEventType.EnterGame)] - public async Task OnEnterGame(ModelManager modelManager, ConfigManager configManager) + [GameEvent(GameEventType.DebugUnlockAllRoles)] + public void UnlockAllRoles(ConfigManager configManager, ModelManager modelManager) { - PlayerModel player = modelManager.Player; + foreach (RoleInfoConfig roleConfig in configManager.Enumerate()) + { + roleInfo role = modelManager.Roles.Create(roleConfig.Id); + role.BaseProp.AddRange(CreateBasePropList(configManager.GetConfig(roleConfig.Id))); + WeaponItem weapon = modelManager.Inventory.AddNewWeapon(roleConfig.InitWeaponItemId); + weapon.RoleId = role.RoleId; + } + } + + [GameEvent(GameEventType.EnterGame)] + public async Task OnEnterGame(ModelManager modelManager) + { await Session.Push(MessageId.PbGetRoleListNotify, new PbGetRoleListNotify { RoleList = { - configManager.GetCollection(ConfigType.RoleInfo) - .Enumerate() - .Select(config => new roleInfo - { - RoleId = config.Id, - Level = 1, - BaseProp = { CreateBasePropList(configManager.GetConfig(config.Id)) } - }) + modelManager.Roles.Roles } }); } @@ -53,142 +56,142 @@ internal class RoleController : Controller List baseProp = []; if (config == null) return baseProp; - baseProp.Add(new() { Key = (int)EAttributeType.Lv, Value = config.Lv}); - baseProp.Add(new() { Key = (int)EAttributeType.LifeMax, Value = config.LifeMax}); - baseProp.Add(new() { Key = (int)EAttributeType.Life, Value = config.Life}); - baseProp.Add(new() { Key = (int)EAttributeType.Sheild, Value = config.Sheild}); - baseProp.Add(new() { Key = (int)EAttributeType.SheildDamageChange, Value = config.SheildDamageChange}); - baseProp.Add(new() { Key = (int)EAttributeType.SheildDamageReduce, Value = config.SheildDamageReduce}); - baseProp.Add(new() { Key = (int)EAttributeType.Atk, Value = config.Atk}); - baseProp.Add(new() { Key = (int)EAttributeType.Crit, Value = config.Crit}); - baseProp.Add(new() { Key = (int)EAttributeType.CritDamage, Value = config.CritDamage}); - baseProp.Add(new() { Key = (int)EAttributeType.Def, Value = config.Def}); - baseProp.Add(new() { Key = (int)EAttributeType.EnergyEfficiency, Value = config.EnergyEfficiency}); - baseProp.Add(new() { Key = (int)EAttributeType.CdReduse, Value = config.CdReduse}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionEfficiency, Value = config.ReactionEfficiency}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeNormalSkill, Value = config.DamageChangeNormalSkill}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChange, Value = config.DamageChange}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageReduce, Value = config.DamageReduce}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeAuto, Value = config.DamageChangeAuto}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeCast, Value = config.DamageChangeCast}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeUltra, Value = config.DamageChangeUltra}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeQte, Value = config.DamageChangeQte}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangePhys, Value = config.DamageChangePhys}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement1, Value = config.DamageChangeElement1}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement2, Value = config.DamageChangeElement2}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement3, Value = config.DamageChangeElement3}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement4, Value = config.DamageChangeElement4}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement5, Value = config.DamageChangeElement5}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement6, Value = config.DamageChangeElement6}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageResistancePhys, Value = config.DamageResistancePhys}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement1, Value = config.DamageResistanceElement1}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement2, Value = config.DamageResistanceElement2}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement3, Value = config.DamageResistanceElement3}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement4, Value = config.DamageResistanceElement4}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement5, Value = config.DamageResistanceElement5}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement6, Value = config.DamageResistanceElement6}); - baseProp.Add(new() { Key = (int)EAttributeType.HealChange, Value = config.HealChange}); - baseProp.Add(new() { Key = (int)EAttributeType.HealedChange, Value = config.HealedChange}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageReducePhys, Value = config.DamageReducePhys}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement1, Value = config.DamageReduceElement1}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement2, Value = config.DamageReduceElement2}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement3, Value = config.DamageReduceElement3}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement4, Value = config.DamageReduceElement4}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement5, Value = config.DamageReduceElement5}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement6, Value = config.DamageReduceElement6}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange1, Value = config.ReactionChange1}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange2, Value = config.ReactionChange2}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange3, Value = config.ReactionChange3}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange4, Value = config.ReactionChange4}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange5, Value = config.ReactionChange5}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange6, Value = config.ReactionChange6}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange7, Value = config.ReactionChange7}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange8, Value = config.ReactionChange8}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange9, Value = config.ReactionChange9}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange10, Value = config.ReactionChange10}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange11, Value = config.ReactionChange11}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange12, Value = config.ReactionChange12}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange13, Value = config.ReactionChange13}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange14, Value = config.ReactionChange14}); - baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange15, Value = config.ReactionChange15}); - baseProp.Add(new() { Key = (int)EAttributeType.EnergyMax, Value = config.EnergyMax}); - baseProp.Add(new() { Key = (int)EAttributeType.Energy, Value = config.Energy}); - baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy1Max, Value = config.SpecialEnergy1Max}); - baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy1, Value = config.SpecialEnergy1}); - baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy2Max, Value = config.SpecialEnergy2Max}); - baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy2, Value = config.SpecialEnergy2}); - baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy3Max, Value = config.SpecialEnergy3Max}); - baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy3, Value = config.SpecialEnergy3}); - baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy4Max, Value = config.SpecialEnergy4Max}); - baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy4, Value = config.SpecialEnergy4}); - baseProp.Add(new() { Key = (int)EAttributeType.StrengthMax, Value = config.StrengthMax}); - baseProp.Add(new() { Key = (int)EAttributeType.Strength, Value = config.Strength}); - baseProp.Add(new() { Key = (int)EAttributeType.StrengthRecover, Value = config.StrengthRecover}); - baseProp.Add(new() { Key = (int)EAttributeType.StrengthPunishTime, Value = config.StrengthPunishTime}); - baseProp.Add(new() { Key = (int)EAttributeType.StrengthRun, Value = config.StrengthRun}); - baseProp.Add(new() { Key = (int)EAttributeType.StrengthSwim, Value = config.StrengthSwim}); - baseProp.Add(new() { Key = (int)EAttributeType.StrengthFastSwim, Value = config.StrengthFastSwim}); - baseProp.Add(new() { Key = (int)EAttributeType.StrengthClimb, Value = config.StrengthClimb}); - baseProp.Add(new() { Key = (int)EAttributeType.StrengthFastClimb, Value = config.StrengthFastClimb}); - baseProp.Add(new() { Key = (int)EAttributeType.HardnessMax, Value = config.HardnessMax}); - baseProp.Add(new() { Key = (int)EAttributeType.Hardness, Value = config.Hardness}); - baseProp.Add(new() { Key = (int)EAttributeType.HardnessRecover, Value = config.HardnessRecover}); - baseProp.Add(new() { Key = (int)EAttributeType.HardnessPunishTime, Value = config.HardnessPunishTime}); - baseProp.Add(new() { Key = (int)EAttributeType.HardnessChange, Value = config.HardnessChange}); - baseProp.Add(new() { Key = (int)EAttributeType.HardnessReduce, Value = config.HardnessReduce}); - baseProp.Add(new() { Key = (int)EAttributeType.RageMax, Value = config.RageMax}); - baseProp.Add(new() { Key = (int)EAttributeType.Rage, Value = config.Rage}); - baseProp.Add(new() { Key = (int)EAttributeType.RageRecover, Value = config.RageRecover}); - baseProp.Add(new() { Key = (int)EAttributeType.RagePunishTime, Value = config.RagePunishTime}); - baseProp.Add(new() { Key = (int)EAttributeType.RageChange, Value = config.RageChange}); - baseProp.Add(new() { Key = (int)EAttributeType.RageReduce, Value = config.RageReduce}); - baseProp.Add(new() { Key = (int)EAttributeType.ToughMax, Value = config.ToughMax}); - baseProp.Add(new() { Key = (int)EAttributeType.Tough, Value = config.Tough}); - baseProp.Add(new() { Key = (int)EAttributeType.ToughRecover, Value = config.ToughRecover}); - baseProp.Add(new() { Key = (int)EAttributeType.ToughChange, Value = config.ToughChange}); - baseProp.Add(new() { Key = (int)EAttributeType.ToughReduce, Value = config.ToughReduce}); - baseProp.Add(new() { Key = (int)EAttributeType.ToughRecoverDelayTime, Value = config.ToughRecoverDelayTime}); - baseProp.Add(new() { Key = (int)EAttributeType.ElementPower1, Value = config.ElementPower1}); - baseProp.Add(new() { Key = (int)EAttributeType.ElementPower2, Value = config.ElementPower2}); - baseProp.Add(new() { Key = (int)EAttributeType.ElementPower3, Value = config.ElementPower3}); - baseProp.Add(new() { Key = (int)EAttributeType.ElementPower4, Value = config.ElementPower4}); - baseProp.Add(new() { Key = (int)EAttributeType.ElementPower5, Value = config.ElementPower5}); - baseProp.Add(new() { Key = (int)EAttributeType.ElementPower6, Value = config.ElementPower6}); - baseProp.Add(new() { Key = (int)EAttributeType.SpecialDamageChange, Value = config.SpecialDamageChange}); - baseProp.Add(new() { Key = (int)EAttributeType.StrengthFastClimbCost, Value = config.StrengthFastClimbCost}); - baseProp.Add(new() { Key = (int)EAttributeType.ElementPropertyType, Value = config.ElementPropertyType}); - baseProp.Add(new() { Key = (int)EAttributeType.WeakTime, Value = config.WeakTime}); - baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDefRate, Value = config.IgnoreDefRate}); - baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistancePhys, Value = config.IgnoreDamageResistancePhys}); - baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement1, Value = config.IgnoreDamageResistanceElement1}); - baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement2, Value = config.IgnoreDamageResistanceElement2}); - baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement3, Value = config.IgnoreDamageResistanceElement3}); - baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement4, Value = config.IgnoreDamageResistanceElement4}); - baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement5, Value = config.IgnoreDamageResistanceElement5}); - baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement6, Value = config.IgnoreDamageResistanceElement6}); - baseProp.Add(new() { Key = (int)EAttributeType.SkillToughRatio, Value = config.SkillToughRatio}); - baseProp.Add(new() { Key = (int)EAttributeType.StrengthClimbJump, Value = config.StrengthClimbJump}); - baseProp.Add(new() { Key = (int)EAttributeType.StrengthGliding, Value = config.StrengthGliding}); - baseProp.Add(new() { Key = (int)EAttributeType.Mass, Value = config.Mass}); - baseProp.Add(new() { Key = (int)EAttributeType.BrakingFrictionFactor, Value = config.BrakingFrictionFactor}); - baseProp.Add(new() { Key = (int)EAttributeType.GravityScale, Value = config.GravityScale}); - baseProp.Add(new() { Key = (int)EAttributeType.SpeedRatio, Value = config.SpeedRatio}); - baseProp.Add(new() { Key = (int)EAttributeType.DamageChangePhantom, Value = config.DamageChangePhantom}); - baseProp.Add(new() { Key = (int)EAttributeType.AutoAttackSpeed, Value = config.AutoAttackSpeed}); - baseProp.Add(new() { Key = (int)EAttributeType.CastAttackSpeed, Value = config.CastAttackSpeed}); - baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp1Max, Value = config.StatusBuildUp1Max}); - baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp1, Value = config.StatusBuildUp1}); - baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp2Max, Value = config.StatusBuildUp2Max}); - baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp2, Value = config.StatusBuildUp2}); - baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp3Max, Value = config.StatusBuildUp3Max}); - baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp3, Value = config.StatusBuildUp3}); - baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp4Max, Value = config.StatusBuildUp4Max}); - baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp4, Value = config.StatusBuildUp4}); - baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp5Max, Value = config.StatusBuildUp5Max}); - baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp5, Value = config.StatusBuildUp5}); - baseProp.Add(new() { Key = (int)EAttributeType.ParalysisTimeMax, Value = config.ParalysisTimeMax}); - baseProp.Add(new() { Key = (int)EAttributeType.ParalysisTime, Value = config.ParalysisTime}); - baseProp.Add(new() { Key = (int)EAttributeType.ParalysisTimeRecover, Value = config.ParalysisTimeRecover}); + baseProp.Add(new() { Key = (int)EAttributeType.Lv, Value = config.Lv }); + baseProp.Add(new() { Key = (int)EAttributeType.LifeMax, Value = config.LifeMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Life, Value = config.Life }); + baseProp.Add(new() { Key = (int)EAttributeType.Sheild, Value = config.Sheild }); + baseProp.Add(new() { Key = (int)EAttributeType.SheildDamageChange, Value = config.SheildDamageChange }); + baseProp.Add(new() { Key = (int)EAttributeType.SheildDamageReduce, Value = config.SheildDamageReduce }); + baseProp.Add(new() { Key = (int)EAttributeType.Atk, Value = config.Atk }); + baseProp.Add(new() { Key = (int)EAttributeType.Crit, Value = config.Crit }); + baseProp.Add(new() { Key = (int)EAttributeType.CritDamage, Value = config.CritDamage }); + baseProp.Add(new() { Key = (int)EAttributeType.Def, Value = config.Def }); + baseProp.Add(new() { Key = (int)EAttributeType.EnergyEfficiency, Value = config.EnergyEfficiency }); + baseProp.Add(new() { Key = (int)EAttributeType.CdReduse, Value = config.CdReduse }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionEfficiency, Value = config.ReactionEfficiency }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeNormalSkill, Value = config.DamageChangeNormalSkill }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChange, Value = config.DamageChange }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduce, Value = config.DamageReduce }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeAuto, Value = config.DamageChangeAuto }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeCast, Value = config.DamageChangeCast }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeUltra, Value = config.DamageChangeUltra }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeQte, Value = config.DamageChangeQte }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangePhys, Value = config.DamageChangePhys }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement1, Value = config.DamageChangeElement1 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement2, Value = config.DamageChangeElement2 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement3, Value = config.DamageChangeElement3 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement4, Value = config.DamageChangeElement4 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement5, Value = config.DamageChangeElement5 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement6, Value = config.DamageChangeElement6 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistancePhys, Value = config.DamageResistancePhys }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement1, Value = config.DamageResistanceElement1 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement2, Value = config.DamageResistanceElement2 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement3, Value = config.DamageResistanceElement3 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement4, Value = config.DamageResistanceElement4 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement5, Value = config.DamageResistanceElement5 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement6, Value = config.DamageResistanceElement6 }); + baseProp.Add(new() { Key = (int)EAttributeType.HealChange, Value = config.HealChange }); + baseProp.Add(new() { Key = (int)EAttributeType.HealedChange, Value = config.HealedChange }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReducePhys, Value = config.DamageReducePhys }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement1, Value = config.DamageReduceElement1 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement2, Value = config.DamageReduceElement2 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement3, Value = config.DamageReduceElement3 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement4, Value = config.DamageReduceElement4 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement5, Value = config.DamageReduceElement5 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement6, Value = config.DamageReduceElement6 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange1, Value = config.ReactionChange1 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange2, Value = config.ReactionChange2 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange3, Value = config.ReactionChange3 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange4, Value = config.ReactionChange4 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange5, Value = config.ReactionChange5 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange6, Value = config.ReactionChange6 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange7, Value = config.ReactionChange7 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange8, Value = config.ReactionChange8 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange9, Value = config.ReactionChange9 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange10, Value = config.ReactionChange10 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange11, Value = config.ReactionChange11 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange12, Value = config.ReactionChange12 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange13, Value = config.ReactionChange13 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange14, Value = config.ReactionChange14 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange15, Value = config.ReactionChange15 }); + baseProp.Add(new() { Key = (int)EAttributeType.EnergyMax, Value = config.EnergyMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Energy, Value = config.Energy }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy1Max, Value = config.SpecialEnergy1Max }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy1, Value = config.SpecialEnergy1 }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy2Max, Value = config.SpecialEnergy2Max }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy2, Value = config.SpecialEnergy2 }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy3Max, Value = config.SpecialEnergy3Max }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy3, Value = config.SpecialEnergy3 }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy4Max, Value = config.SpecialEnergy4Max }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy4, Value = config.SpecialEnergy4 }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthMax, Value = config.StrengthMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Strength, Value = config.Strength }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthRecover, Value = config.StrengthRecover }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthPunishTime, Value = config.StrengthPunishTime }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthRun, Value = config.StrengthRun }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthSwim, Value = config.StrengthSwim }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthFastSwim, Value = config.StrengthFastSwim }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthClimb, Value = config.StrengthClimb }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthFastClimb, Value = config.StrengthFastClimb }); + baseProp.Add(new() { Key = (int)EAttributeType.HardnessMax, Value = config.HardnessMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Hardness, Value = config.Hardness }); + baseProp.Add(new() { Key = (int)EAttributeType.HardnessRecover, Value = config.HardnessRecover }); + baseProp.Add(new() { Key = (int)EAttributeType.HardnessPunishTime, Value = config.HardnessPunishTime }); + baseProp.Add(new() { Key = (int)EAttributeType.HardnessChange, Value = config.HardnessChange }); + baseProp.Add(new() { Key = (int)EAttributeType.HardnessReduce, Value = config.HardnessReduce }); + baseProp.Add(new() { Key = (int)EAttributeType.RageMax, Value = config.RageMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Rage, Value = config.Rage }); + baseProp.Add(new() { Key = (int)EAttributeType.RageRecover, Value = config.RageRecover }); + baseProp.Add(new() { Key = (int)EAttributeType.RagePunishTime, Value = config.RagePunishTime }); + baseProp.Add(new() { Key = (int)EAttributeType.RageChange, Value = config.RageChange }); + baseProp.Add(new() { Key = (int)EAttributeType.RageReduce, Value = config.RageReduce }); + baseProp.Add(new() { Key = (int)EAttributeType.ToughMax, Value = config.ToughMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Tough, Value = config.Tough }); + baseProp.Add(new() { Key = (int)EAttributeType.ToughRecover, Value = config.ToughRecover }); + baseProp.Add(new() { Key = (int)EAttributeType.ToughChange, Value = config.ToughChange }); + baseProp.Add(new() { Key = (int)EAttributeType.ToughReduce, Value = config.ToughReduce }); + baseProp.Add(new() { Key = (int)EAttributeType.ToughRecoverDelayTime, Value = config.ToughRecoverDelayTime }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower1, Value = config.ElementPower1 }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower2, Value = config.ElementPower2 }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower3, Value = config.ElementPower3 }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower4, Value = config.ElementPower4 }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower5, Value = config.ElementPower5 }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower6, Value = config.ElementPower6 }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialDamageChange, Value = config.SpecialDamageChange }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthFastClimbCost, Value = config.StrengthFastClimbCost }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPropertyType, Value = config.ElementPropertyType }); + baseProp.Add(new() { Key = (int)EAttributeType.WeakTime, Value = config.WeakTime }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDefRate, Value = config.IgnoreDefRate }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistancePhys, Value = config.IgnoreDamageResistancePhys }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement1, Value = config.IgnoreDamageResistanceElement1 }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement2, Value = config.IgnoreDamageResistanceElement2 }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement3, Value = config.IgnoreDamageResistanceElement3 }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement4, Value = config.IgnoreDamageResistanceElement4 }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement5, Value = config.IgnoreDamageResistanceElement5 }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement6, Value = config.IgnoreDamageResistanceElement6 }); + baseProp.Add(new() { Key = (int)EAttributeType.SkillToughRatio, Value = config.SkillToughRatio }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthClimbJump, Value = config.StrengthClimbJump }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthGliding, Value = config.StrengthGliding }); + baseProp.Add(new() { Key = (int)EAttributeType.Mass, Value = config.Mass }); + baseProp.Add(new() { Key = (int)EAttributeType.BrakingFrictionFactor, Value = config.BrakingFrictionFactor }); + baseProp.Add(new() { Key = (int)EAttributeType.GravityScale, Value = config.GravityScale }); + baseProp.Add(new() { Key = (int)EAttributeType.SpeedRatio, Value = config.SpeedRatio }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangePhantom, Value = config.DamageChangePhantom }); + baseProp.Add(new() { Key = (int)EAttributeType.AutoAttackSpeed, Value = config.AutoAttackSpeed }); + baseProp.Add(new() { Key = (int)EAttributeType.CastAttackSpeed, Value = config.CastAttackSpeed }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp1Max, Value = config.StatusBuildUp1Max }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp1, Value = config.StatusBuildUp1 }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp2Max, Value = config.StatusBuildUp2Max }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp2, Value = config.StatusBuildUp2 }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp3Max, Value = config.StatusBuildUp3Max }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp3, Value = config.StatusBuildUp3 }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp4Max, Value = config.StatusBuildUp4Max }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp4, Value = config.StatusBuildUp4 }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp5Max, Value = config.StatusBuildUp5Max }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp5, Value = config.StatusBuildUp5 }); + baseProp.Add(new() { Key = (int)EAttributeType.ParalysisTimeMax, Value = config.ParalysisTimeMax }); + baseProp.Add(new() { Key = (int)EAttributeType.ParalysisTime, Value = config.ParalysisTime }); + baseProp.Add(new() { Key = (int)EAttributeType.ParalysisTimeRecover, Value = config.ParalysisTimeRecover }); return baseProp; } diff --git a/GameServer/Models/InventoryModel.cs b/GameServer/Models/InventoryModel.cs new file mode 100644 index 0000000..a7bea3c --- /dev/null +++ b/GameServer/Models/InventoryModel.cs @@ -0,0 +1,29 @@ +using Core.Config; +using Protocol; + +namespace GameServer.Models; +internal class InventoryModel +{ + private int _itemIncrId; + + public List WeaponList { get; } = []; + + public WeaponItem? GetWeaponById(int incrId) + { + return WeaponList.SingleOrDefault(weapon => weapon.IncrId == incrId); + } + + public WeaponItem AddNewWeapon(int weaponId) + { + WeaponItem weapon = new() + { + Id = weaponId, + IncrId = ++_itemIncrId, + WeaponLevel = 1, + WeaponResonLevel = 1 + }; + + WeaponList.Add(weapon); + return weapon; + } +} diff --git a/GameServer/Models/ModelManager.cs b/GameServer/Models/ModelManager.cs index 7b82510..4965554 100644 --- a/GameServer/Models/ModelManager.cs +++ b/GameServer/Models/ModelManager.cs @@ -1,4 +1,5 @@ -using GameServer.Controllers.Attributes; +using Core.Config; +using GameServer.Controllers.Attributes; using GameServer.Settings; using GameServer.Systems.Event; using Microsoft.Extensions.Options; @@ -7,13 +8,15 @@ namespace GameServer.Models; internal class ModelManager { private readonly IOptions _playerStartingValues; + private readonly ConfigManager _configManager; private PlayerModel? _playerModel; private CreatureModel? _creatureModel; - public ModelManager(IOptions playerStartingValues) + public ModelManager(IOptions playerStartingValues, ConfigManager configManager) { _playerStartingValues = playerStartingValues; + _configManager = configManager; } [GameEvent(GameEventType.Login)] @@ -29,6 +32,8 @@ internal class ModelManager public CreatureModel Creature => _creatureModel ?? throw new InvalidOperationException($"Trying to access {nameof(CreatureModel)} instance before initialization!"); + public RoleModel Roles { get; } = new(); public FormationModel Formation { get; } = new(); + public InventoryModel Inventory { get; } = new(); public ChatModel Chat { get; } = new(); } diff --git a/GameServer/Models/RoleModel.cs b/GameServer/Models/RoleModel.cs new file mode 100644 index 0000000..b0c6d47 --- /dev/null +++ b/GameServer/Models/RoleModel.cs @@ -0,0 +1,165 @@ +using Core.Config; +using Protocol; + +namespace GameServer.Models; +internal class RoleModel +{ + public List Roles { get; } = []; + + public roleInfo Create(int id) + { + roleInfo info = new() + { + RoleId = id, + Level = 1, + }; + + Roles.Add(info); + return info; + } + + private static List CreateBasePropList(BasePropertyConfig? config) + { + List baseProp = []; + if (config == null) return baseProp; + + baseProp.Add(new() { Key = (int)EAttributeType.Lv, Value = config.Lv }); + baseProp.Add(new() { Key = (int)EAttributeType.LifeMax, Value = config.LifeMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Life, Value = config.Life }); + baseProp.Add(new() { Key = (int)EAttributeType.Sheild, Value = config.Sheild }); + baseProp.Add(new() { Key = (int)EAttributeType.SheildDamageChange, Value = config.SheildDamageChange }); + baseProp.Add(new() { Key = (int)EAttributeType.SheildDamageReduce, Value = config.SheildDamageReduce }); + baseProp.Add(new() { Key = (int)EAttributeType.Atk, Value = config.Atk }); + baseProp.Add(new() { Key = (int)EAttributeType.Crit, Value = config.Crit }); + baseProp.Add(new() { Key = (int)EAttributeType.CritDamage, Value = config.CritDamage }); + baseProp.Add(new() { Key = (int)EAttributeType.Def, Value = config.Def }); + baseProp.Add(new() { Key = (int)EAttributeType.EnergyEfficiency, Value = config.EnergyEfficiency }); + baseProp.Add(new() { Key = (int)EAttributeType.CdReduse, Value = config.CdReduse }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionEfficiency, Value = config.ReactionEfficiency }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeNormalSkill, Value = config.DamageChangeNormalSkill }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChange, Value = config.DamageChange }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduce, Value = config.DamageReduce }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeAuto, Value = config.DamageChangeAuto }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeCast, Value = config.DamageChangeCast }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeUltra, Value = config.DamageChangeUltra }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeQte, Value = config.DamageChangeQte }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangePhys, Value = config.DamageChangePhys }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement1, Value = config.DamageChangeElement1 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement2, Value = config.DamageChangeElement2 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement3, Value = config.DamageChangeElement3 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement4, Value = config.DamageChangeElement4 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement5, Value = config.DamageChangeElement5 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangeElement6, Value = config.DamageChangeElement6 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistancePhys, Value = config.DamageResistancePhys }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement1, Value = config.DamageResistanceElement1 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement2, Value = config.DamageResistanceElement2 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement3, Value = config.DamageResistanceElement3 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement4, Value = config.DamageResistanceElement4 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement5, Value = config.DamageResistanceElement5 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageResistanceElement6, Value = config.DamageResistanceElement6 }); + baseProp.Add(new() { Key = (int)EAttributeType.HealChange, Value = config.HealChange }); + baseProp.Add(new() { Key = (int)EAttributeType.HealedChange, Value = config.HealedChange }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReducePhys, Value = config.DamageReducePhys }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement1, Value = config.DamageReduceElement1 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement2, Value = config.DamageReduceElement2 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement3, Value = config.DamageReduceElement3 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement4, Value = config.DamageReduceElement4 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement5, Value = config.DamageReduceElement5 }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageReduceElement6, Value = config.DamageReduceElement6 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange1, Value = config.ReactionChange1 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange2, Value = config.ReactionChange2 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange3, Value = config.ReactionChange3 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange4, Value = config.ReactionChange4 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange5, Value = config.ReactionChange5 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange6, Value = config.ReactionChange6 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange7, Value = config.ReactionChange7 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange8, Value = config.ReactionChange8 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange9, Value = config.ReactionChange9 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange10, Value = config.ReactionChange10 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange11, Value = config.ReactionChange11 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange12, Value = config.ReactionChange12 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange13, Value = config.ReactionChange13 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange14, Value = config.ReactionChange14 }); + baseProp.Add(new() { Key = (int)EAttributeType.ReactionChange15, Value = config.ReactionChange15 }); + baseProp.Add(new() { Key = (int)EAttributeType.EnergyMax, Value = config.EnergyMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Energy, Value = config.Energy }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy1Max, Value = config.SpecialEnergy1Max }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy1, Value = config.SpecialEnergy1 }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy2Max, Value = config.SpecialEnergy2Max }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy2, Value = config.SpecialEnergy2 }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy3Max, Value = config.SpecialEnergy3Max }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy3, Value = config.SpecialEnergy3 }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy4Max, Value = config.SpecialEnergy4Max }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialEnergy4, Value = config.SpecialEnergy4 }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthMax, Value = config.StrengthMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Strength, Value = config.Strength }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthRecover, Value = config.StrengthRecover }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthPunishTime, Value = config.StrengthPunishTime }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthRun, Value = config.StrengthRun }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthSwim, Value = config.StrengthSwim }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthFastSwim, Value = config.StrengthFastSwim }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthClimb, Value = config.StrengthClimb }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthFastClimb, Value = config.StrengthFastClimb }); + baseProp.Add(new() { Key = (int)EAttributeType.HardnessMax, Value = config.HardnessMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Hardness, Value = config.Hardness }); + baseProp.Add(new() { Key = (int)EAttributeType.HardnessRecover, Value = config.HardnessRecover }); + baseProp.Add(new() { Key = (int)EAttributeType.HardnessPunishTime, Value = config.HardnessPunishTime }); + baseProp.Add(new() { Key = (int)EAttributeType.HardnessChange, Value = config.HardnessChange }); + baseProp.Add(new() { Key = (int)EAttributeType.HardnessReduce, Value = config.HardnessReduce }); + baseProp.Add(new() { Key = (int)EAttributeType.RageMax, Value = config.RageMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Rage, Value = config.Rage }); + baseProp.Add(new() { Key = (int)EAttributeType.RageRecover, Value = config.RageRecover }); + baseProp.Add(new() { Key = (int)EAttributeType.RagePunishTime, Value = config.RagePunishTime }); + baseProp.Add(new() { Key = (int)EAttributeType.RageChange, Value = config.RageChange }); + baseProp.Add(new() { Key = (int)EAttributeType.RageReduce, Value = config.RageReduce }); + baseProp.Add(new() { Key = (int)EAttributeType.ToughMax, Value = config.ToughMax }); + baseProp.Add(new() { Key = (int)EAttributeType.Tough, Value = config.Tough }); + baseProp.Add(new() { Key = (int)EAttributeType.ToughRecover, Value = config.ToughRecover }); + baseProp.Add(new() { Key = (int)EAttributeType.ToughChange, Value = config.ToughChange }); + baseProp.Add(new() { Key = (int)EAttributeType.ToughReduce, Value = config.ToughReduce }); + baseProp.Add(new() { Key = (int)EAttributeType.ToughRecoverDelayTime, Value = config.ToughRecoverDelayTime }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower1, Value = config.ElementPower1 }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower2, Value = config.ElementPower2 }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower3, Value = config.ElementPower3 }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower4, Value = config.ElementPower4 }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower5, Value = config.ElementPower5 }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPower6, Value = config.ElementPower6 }); + baseProp.Add(new() { Key = (int)EAttributeType.SpecialDamageChange, Value = config.SpecialDamageChange }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthFastClimbCost, Value = config.StrengthFastClimbCost }); + baseProp.Add(new() { Key = (int)EAttributeType.ElementPropertyType, Value = config.ElementPropertyType }); + baseProp.Add(new() { Key = (int)EAttributeType.WeakTime, Value = config.WeakTime }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDefRate, Value = config.IgnoreDefRate }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistancePhys, Value = config.IgnoreDamageResistancePhys }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement1, Value = config.IgnoreDamageResistanceElement1 }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement2, Value = config.IgnoreDamageResistanceElement2 }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement3, Value = config.IgnoreDamageResistanceElement3 }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement4, Value = config.IgnoreDamageResistanceElement4 }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement5, Value = config.IgnoreDamageResistanceElement5 }); + baseProp.Add(new() { Key = (int)EAttributeType.IgnoreDamageResistanceElement6, Value = config.IgnoreDamageResistanceElement6 }); + baseProp.Add(new() { Key = (int)EAttributeType.SkillToughRatio, Value = config.SkillToughRatio }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthClimbJump, Value = config.StrengthClimbJump }); + baseProp.Add(new() { Key = (int)EAttributeType.StrengthGliding, Value = config.StrengthGliding }); + baseProp.Add(new() { Key = (int)EAttributeType.Mass, Value = config.Mass }); + baseProp.Add(new() { Key = (int)EAttributeType.BrakingFrictionFactor, Value = config.BrakingFrictionFactor }); + baseProp.Add(new() { Key = (int)EAttributeType.GravityScale, Value = config.GravityScale }); + baseProp.Add(new() { Key = (int)EAttributeType.SpeedRatio, Value = config.SpeedRatio }); + baseProp.Add(new() { Key = (int)EAttributeType.DamageChangePhantom, Value = config.DamageChangePhantom }); + baseProp.Add(new() { Key = (int)EAttributeType.AutoAttackSpeed, Value = config.AutoAttackSpeed }); + baseProp.Add(new() { Key = (int)EAttributeType.CastAttackSpeed, Value = config.CastAttackSpeed }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp1Max, Value = config.StatusBuildUp1Max }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp1, Value = config.StatusBuildUp1 }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp2Max, Value = config.StatusBuildUp2Max }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp2, Value = config.StatusBuildUp2 }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp3Max, Value = config.StatusBuildUp3Max }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp3, Value = config.StatusBuildUp3 }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp4Max, Value = config.StatusBuildUp4Max }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp4, Value = config.StatusBuildUp4 }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp5Max, Value = config.StatusBuildUp5Max }); + baseProp.Add(new() { Key = (int)EAttributeType.StatusBuildUp5, Value = config.StatusBuildUp5 }); + baseProp.Add(new() { Key = (int)EAttributeType.ParalysisTimeMax, Value = config.ParalysisTimeMax }); + baseProp.Add(new() { Key = (int)EAttributeType.ParalysisTime, Value = config.ParalysisTime }); + baseProp.Add(new() { Key = (int)EAttributeType.ParalysisTimeRecover, Value = config.ParalysisTimeRecover }); + + return baseProp; + } +} diff --git a/GameServer/Systems/Event/GameEventType.cs b/GameServer/Systems/Event/GameEventType.cs index b95e144..18fcdb2 100644 --- a/GameServer/Systems/Event/GameEventType.cs +++ b/GameServer/Systems/Event/GameEventType.cs @@ -7,5 +7,9 @@ internal enum GameEventType // Actions FormationUpdated, - VisionSkillChanged + VisionSkillChanged, + + // Debug + DebugUnlockAllRoles, + DebugUnlockAllWeapons }