From 18e1e7bb7b74594b77680846f695dc55e9cf1e81 Mon Sep 17 00:00:00 2001 From: DeKaN Date: Fri, 10 Feb 2023 22:37:22 +0400 Subject: [PATCH] Introduce default values for GameAttribute constructor parameters. Move list of attributes to separated static class --- .../CommandManager/Commands/InfoCommand.cs | 4 +- .../Commands/InvulnerableCommand.cs | 4 +- .../CommandManager/Commands/LevelUpCommand.cs | 4 +- .../Commands/PowerfulCommand.cs | 8 +- .../Commands/ResourcefulCommand.cs | 2 +- .../CommandManager/Commands/SpeedCommand.cs | 4 +- .../D3-GameServer/Core/InventoryGrid.cs | 14 +- .../AISystem/Brains/AggressiveNPCBrain.cs | 14 +- .../GSSystem/AISystem/Brains/HirelingBrain.cs | 12 +- .../GSSystem/AISystem/Brains/LooterBrain.cs | 9 +- .../GSSystem/AISystem/Brains/MinionBrain.cs | 13 +- .../GSSystem/AISystem/Brains/MonsterBrain.cs | 20 +- .../AISystem/Brains/StayAggressiveNPCBrain.cs | 14 +- .../GSSystem/ActorSystem/Actor.cs | 42 +- .../GSSystem/ActorSystem/BossPortal.cs | 26 +- .../GSSystem/ActorSystem/Gizmo.cs | 6 +- .../Artisans/ArtisanShortcut.cs | 4 +- .../Implementations/Artisans/Jeweler.cs | 2 +- .../Implementations/Artisans/Nephalem.cs | 2 +- .../ActorSystem/Implementations/Banner.cs | 4 +- .../ActorSystem/Implementations/Boss.cs | 21 +- .../ActorSystem/Implementations/CR_Glass.cs | 4 +- .../Implementations/CathedralLamp.cs | 15 +- .../Implementations/CathedralWall.cs | 15 +- .../Implementations/ChallengeObelisk.cs | 24 +- .../ActorSystem/Implementations/Champion.cs | 17 +- .../ActorSystem/Implementations/Checkpoint.cs | 2 +- .../Implementations/CursedChest.cs | 5 +- .../Implementations/CursedShrine.cs | 9 +- .../DesctructibleLootContainer.cs | 11 +- .../ActorSystem/Implementations/Door.cs | 12 +- .../Implementations/DungeonStonePortal.cs | 3 +- .../Implementations/EquipmentManager.cs | 7 +- .../ActorSystem/Implementations/Ghost.cs | 2 +- .../ActorSystem/Implementations/Goblin.cs | 13 +- .../ActorSystem/Implementations/Headstone.cs | 8 +- .../ActorSystem/Implementations/Healer.cs | 7 +- .../ActorSystem/Implementations/Healthwell.cs | 13 +- .../Implementations/HearthPortal.cs | 7 +- .../Implementations/HiddenVendor.cs | 6 +- .../Implementations/Hirelings/Enchantress.cs | 34 +- .../Implementations/Hirelings/Hireling.cs | 225 +- .../Implementations/Hirelings/Leah.cs | 29 +- .../Hirelings/MalthaelHireling.cs | 38 +- .../Implementations/Hirelings/Scoundrel.cs | 34 +- .../Implementations/Hirelings/Templar.cs | 34 +- .../Implementations/LegendaryChest.cs | 7 +- .../Implementations/LootContainer.cs | 19 +- .../Minions/AncientBarbarian.cs | 10 +- .../Minions/AvatarsOfTheOrder.cs | 32 +- .../Minions/CompanionMinion.cs | 26 +- .../Implementations/Minions/CorpseSpider.cs | 14 +- .../Minions/CorpseSpiderQueen.cs | 11 +- .../Minions/FetishArmyHunter.cs | 15 +- .../Minions/FetishArmyMelee.cs | 10 +- .../Minions/FetishArmyShaman.cs | 15 +- .../Minions/GargantuanMinion.cs | 20 +- .../Implementations/Minions/Golems.cs | 68 +- .../Implementations/Minions/HexMinion.cs | 15 +- .../Minions/LooterPetAnniversary.cs | 14 +- .../Minions/MirrorImageMinion.cs | 10 +- .../Minions/MysticAllyMinion.cs | 20 +- .../Minions/NecromancerSkeleton_A.cs | 35 +- .../Implementations/Minions/SentryMinion.cs | 11 +- .../Implementations/Minions/SkeletalMage.cs | 17 +- .../Implementations/Minions/WallCreeper.cs | 15 +- .../Implementations/Minions/ZombieDog.cs | 28 +- .../Implementations/Monsters/Bosses.cs | 20 +- .../Implementations/Monsters/Monsters.cs | 109 +- .../Implementations/Monsters/Traps.cs | 13 +- .../Implementations/NPC/ArrowGuardian.cs | 12 +- .../Implementations/NPC/CR_Nephalem.cs | 7 +- .../ActorSystem/Implementations/NPC/Cain.cs | 8 +- .../Implementations/NPC/CapitanRumford.cs | 12 +- .../ActorSystem/Implementations/NPC/Fate.cs | 2 +- .../Implementations/NPC/GhostOnSpire.cs | 2 +- .../Implementations/NPC/HirelingNPC.cs | 12 +- .../ActorSystem/Implementations/NPC/Hope.cs | 2 +- .../ActorSystem/Implementations/NPC/Humans.cs | 4 +- .../Implementations/NPC/LeahNPC.cs | 7 +- .../Implementations/NPC/LorathNahr_NPC.cs | 18 +- .../Implementations/NPC/Mystic_NoVendor.cs | 10 +- .../NPC/OldTristramEvent/Cow.cs | 2 +- .../NPC/OldTristramEvent/Farnham.cs | 2 +- .../NPC/OldTristramEvent/Griswold.cs | 2 +- .../NPC/OldTristramEvent/Ogden.cs | 2 +- .../NPC/OldTristramEvent/Pepin.cs | 2 +- .../Implementations/NPC/TownLeah.cs | 12 +- .../ActorSystem/Implementations/NPC/Tyrael.cs | 12 +- .../Implementations/NecromancerFlesh.cs | 5 +- .../Implementations/NephalemStone.cs | 10 +- .../ProximityTriggeredGizmo.cs | 6 +- .../ActorSystem/Implementations/Rare.cs | 17 +- .../ActorSystem/Implementations/RareMinion.cs | 11 +- .../ActorSystem/Implementations/Readable.cs | 19 +- .../ScriptObjects/A2BelialBomb.cs | 20 +- .../ScriptObjects/A5BogBeacon.cs | 8 +- .../ScriptObjects/A5ClassGhost.cs | 5 +- .../ScriptObjects/BelialRoom.cs | 19 +- .../ScriptObjects/BladeTrap.cs | 7 +- .../Implementations/ScriptObjects/Brawler.cs | 7 +- .../ScriptObjects/ButcherFloorPanel.cs | 13 +- .../Implementations/ScriptObjects/CainBook.cs | 7 +- .../Implementations/ScriptObjects/CowKing.cs | 8 +- .../Implementations/ScriptObjects/Gharbad.cs | 2 +- .../Implementations/ScriptObjects/Jondar.cs | 15 +- .../Implementations/ScriptObjects/Leoric.cs | 16 +- .../ScriptObjects/PVPSafeZone.cs | 9 +- .../ScriptObjects/RefugeeCart.cs | 9 +- .../ScriptObjects/Scoundrel.cs | 13 +- .../ScriptObjects/SwordOfLeoric.cs | 21 +- .../ScriptObjects/actIIICatapult.cs | 9 +- .../ScriptObjects/actIITombLever.cs | 13 +- .../ScriptObjects/actVFortressPortal.cs | 6 +- .../ScriptObjects/caOut_Cage.cs | 6 +- .../ActorSystem/Implementations/SetDungeon.cs | 4 +- .../ActorSystem/Implementations/Shrine.cs | 10 +- .../Spawners/KingGhost_Spawner.cs | 8 +- .../ActorSystem/Implementations/Stash.cs | 7 +- .../Traps/FrostTrapSwingingBlade.cs | 15 +- .../ActorSystem/Implementations/Vendor.cs | 10 +- .../ActorSystem/Implementations/Wardrobe.cs | 7 +- .../ActorSystem/Implementations/Waypoint.cs | 2 +- .../ActorSystem/Implementations/XPPool.cs | 13 +- .../GSSystem/ActorSystem/InteractiveNPC.cs | 36 +- .../GSSystem/ActorSystem/Living.cs | 10 +- .../GSSystem/ActorSystem/Minion.cs | 36 +- .../GSSystem/ActorSystem/Monster.cs | 51 +- .../Movement/MoveToPointWithPathfindAction.cs | 2 +- .../MoveToTargetWithPathfindAction.cs | 2 +- .../D3-GameServer/GSSystem/ActorSystem/NPC.cs | 4 +- .../GSSystem/ActorSystem/StaticItem.cs | 7 +- .../D3-GameServer/GSSystem/GameSystem/Game.cs | 13 +- .../GSSystem/GameSystem/QuestManager.cs | 4 +- .../GeneratorsSystem/MonsterAffixGenerator.cs | 16 +- .../GeneratorsSystem/WorldGenerator.cs | 36 +- .../GSSystem/ItemsSystem/AffixGenerator.cs | 28 +- .../GSSystem/ItemsSystem/FormulaScript.cs | 3 +- .../ItemsSystem/Implementations/Dye.cs | 8 +- .../GSSystem/ItemsSystem/Item.cs | 275 +- .../ItemCreation/DefaultAttributeCreator.cs | 12 +- .../ItemCreation/PotionAttributeCreator.cs | 7 +- .../ItemCreation/WeaponAttributeCreator.cs | 62 +- .../GSSystem/ItemsSystem/ItemGenerator.cs | 66 +- .../D3-GameServer/GSSystem/MapSystem/World.cs | 17 +- .../ObjectsSystem/GameAttributeMap.cs | 38 +- .../PlayerSystem/ConversationManager.cs | 37 +- .../GSSystem/PlayerSystem/Equipment.cs | 15 +- .../GSSystem/PlayerSystem/Inventory.cs | 316 +- .../GSSystem/PlayerSystem/Player.cs | 1587 +++++---- .../GSSystem/PowerSystem/BaseBuffs.cs | 589 ++-- .../GSSystem/PowerSystem/EffectActor.cs | 13 +- .../General/ActorGhostedBuff.cs | 23 +- .../Implementations/General/CooldownBuff.cs | 45 +- .../Implementations/General/LevelUp.cs | 6 +- .../General/NephalemValorBuff.cs | 29 +- .../Implementations/General/ShrineBuff.cs | 9 +- .../Implementations/General/StatusDebuff.cs | 103 +- .../Implementations/General/Traps.cs | 7 +- .../Implementations/HeroSkills/Barbarian.cs | 169 +- .../Implementations/HeroSkills/Crusader.cs | 216 +- .../Implementations/HeroSkills/DemonHunter.cs | 161 +- .../Implementations/HeroSkills/Monk.cs | 523 ++- .../Implementations/HeroSkills/Necromancer.cs | 254 +- .../HeroSkills/PassiveBuffs.cs | 164 +- .../Implementations/HeroSkills/WitchDoctor.cs | 118 +- .../Implementations/HeroSkills/Wizard.cs | 187 +- .../MonsterSkills/BossSkills.cs | 10 +- .../MonsterSkills/MonsterAffixSkill.cs | 26 +- .../MonsterSkills/SingleProjectileSkill.cs | 4 +- .../PowerSystem/Payloads/AttackPayload.cs | 6 +- .../PowerSystem/Payloads/DeathPayload.cs | 120 +- .../PowerSystem/Payloads/HitPayload.cs | 125 +- .../GSSystem/PowerSystem/PowerContext.cs | 28 +- .../GSSystem/PowerSystem/PowerManager.cs | 20 +- .../GSSystem/PowerSystem/Projectile.cs | 48 +- .../PowerSystem/ScriptFormulaEvaluator.cs | 32 +- .../GSSystem/QuestSystem/ActI.cs | 27 +- .../GSSystem/QuestSystem/ActII.cs | 11 +- .../GSSystem/QuestSystem/ActIII.cs | 37 +- .../GSSystem/QuestSystem/ActIV.cs | 34 +- .../GSSystem/QuestSystem/ActV.cs | 37 +- .../GSSystem/QuestSystem/Events.cs | 33 +- .../Act I/AttackTownBoominHome.cs | 8 +- .../Implementations/Act I/AttackTownKilled.cs | 6 +- .../Implementations/Act I/CellarZombies.cs | 15 +- .../Implementations/Act I/DrownedTemple.cs | 5 +- .../Implementations/Act I/LeahInn.cs | 2 +- .../Implementations/Act I/SecondWave.cs | 18 +- .../Implementations/Act I/StartSceneinHome.cs | 9 +- .../Implementations/Act I/SurviveTheWaves.cs | 23 +- .../Implementations/Act II/BelialStageOne.cs | 4 +- .../Act V/TheFallofWestmarch/AfterKillBoss.cs | 2 +- .../TheFallofWestmarch/AfterKillMonsters.cs | 2 +- .../QuestSystem/QuestEvents/SideTarget.cs | 8 +- .../GSSystem/QuestSystem/QuestProgress.cs | 41 +- .../GSSystem/SkillsSystem/SkillSet.cs | 2 +- .../MessageSystem/GameAttribute.List.cs | 2997 ++++++++--------- .../MessageSystem/GameAttribute.cs | 173 +- .../Definitions/Player/LoadCompleteMessage.cs | 32 +- .../Message/Fields/NetAttributeKeyValue.cs | 8 +- .../ScriptedAttributeInitializer.cs | 86 +- 202 files changed, 5324 insertions(+), 5863 deletions(-) diff --git a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/InfoCommand.cs b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/InfoCommand.cs index 689db32..1839c18 100644 --- a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/InfoCommand.cs +++ b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/InfoCommand.cs @@ -47,8 +47,8 @@ public class InfoCommand : CommandGroup info.Add($"> Class: {playerInWorld.Value.Toon.Class.ToString()}"); info.Add($"> Level: {playerInWorld.Value.Toon.Level}"); info.Add( - $"> Health: {playerInWorld.Value.Attributes[GameAttribute.Hitpoints_Cur]} / {playerInWorld.Value.Attributes[GameAttribute.Hitpoints_Max]}"); - info.Add($"> Damage: {playerInWorld.Value.Attributes[GameAttribute.Damage_Min, 0]}"); + $"> Health: {playerInWorld.Value.Attributes[GameAttributes.Hitpoints_Cur]} / {playerInWorld.Value.Attributes[GameAttributes.Hitpoints_Max]}"); + info.Add($"> Damage: {playerInWorld.Value.Attributes[GameAttributes.Damage_Min, 0]}"); info.Add(""); } diff --git a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/InvulnerableCommand.cs b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/InvulnerableCommand.cs index b2a1df0..fdcba31 100644 --- a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/InvulnerableCommand.cs +++ b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/InvulnerableCommand.cs @@ -17,13 +17,13 @@ public class InvulnerableCommand : CommandGroup if (player.Attributes.FixedMap.Contains(FixedAttribute.Invulnerable)) { player.Attributes.FixedMap.Remove(FixedAttribute.Invulnerable); - player.Attributes[GameAttribute.Invulnerable] = false; + player.Attributes[GameAttributes.Invulnerable] = false; player.Attributes.BroadcastChangedIfRevealed(); return "You are no longer invulnerable."; } player.Attributes.FixedMap.Add(FixedAttribute.Invulnerable, - attributes => { attributes[GameAttribute.Invulnerable] = true; }); + attributes => { attributes[GameAttributes.Invulnerable] = true; }); player.Attributes.BroadcastChangedIfRevealed(); return "You are now invulnerable."; } diff --git a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/LevelUpCommand.cs b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/LevelUpCommand.cs index 7237e05..f8de9de 100644 --- a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/LevelUpCommand.cs +++ b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/LevelUpCommand.cs @@ -28,13 +28,13 @@ public class LevelUpCommand : CommandGroup for (var i = 0; i < amount; i++) if (player.Level >= 70) { - player.UpdateExp((int)player.Attributes[GameAttribute.Alt_Experience_Next_Lo]); + player.UpdateExp((int)player.Attributes[GameAttributes.Alt_Experience_Next_Lo]); player.PlayEffect(Effect.ParagonLevelUp, null, false); player.World.PowerManager.RunPower(player, 252038); } else { - player.UpdateExp((int)player.Attributes[GameAttribute.Experience_Next_Lo]); + player.UpdateExp((int)player.Attributes[GameAttributes.Experience_Next_Lo]); player.PlayEffect(Effect.LevelUp, null, false); player.World.PowerManager.RunPower(player, 85954); } diff --git a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/PowerfulCommand.cs b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/PowerfulCommand.cs index 681c45b..69b67ce 100644 --- a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/PowerfulCommand.cs +++ b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/PowerfulCommand.cs @@ -24,10 +24,10 @@ public class PowerfulCommand : CommandGroup player.Attributes.FixedMap.Add(FixedAttribute.Powerful, (attributes) => { - attributes[GameAttribute.Damage_Delta, 0] = float.MaxValue; - attributes[GameAttribute.Damage_Min, 0] = float.MaxValue; - attributes[GameAttribute.Damage_Weapon_Delta, 0] = float.MaxValue; - attributes[GameAttribute.Damage_Weapon_Min, 0] = float.MaxValue; + attributes[GameAttributes.Damage_Delta, 0] = float.MaxValue; + attributes[GameAttributes.Damage_Min, 0] = float.MaxValue; + attributes[GameAttributes.Damage_Weapon_Delta, 0] = float.MaxValue; + attributes[GameAttributes.Damage_Weapon_Min, 0] = float.MaxValue; }); player.Attributes.BroadcastChangedIfRevealed(); diff --git a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/ResourcefulCommand.cs b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/ResourcefulCommand.cs index 70d324d..54a3961 100644 --- a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/ResourcefulCommand.cs +++ b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/ResourcefulCommand.cs @@ -24,7 +24,7 @@ public class ResourcefulCommand : CommandGroup player.Attributes.FixedMap.Add(FixedAttribute.Resourceful, (attributes) => { - attributes[GameAttribute.Resource_Cur, 1] = 100; + attributes[GameAttributes.Resource_Cur, 1] = 100; }); player.Attributes.BroadcastChangedIfRevealed(); diff --git a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/SpeedCommand.cs b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/SpeedCommand.cs index f56f7d6..5f64e3d 100644 --- a/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/SpeedCommand.cs +++ b/src/DiIiS-NA/D3-GameServer/CommandManager/Commands/SpeedCommand.cs @@ -39,10 +39,10 @@ public class SpeedCommand : CommandGroup if (speedValue <= baseSpeed) // Base Run Speed [Necrosummon] { - playerSpeed[GameAttribute.Running_Rate] = baseSpeed; + playerSpeed[GameAttributes.Running_Rate] = baseSpeed; return $"Speed reset to Base Speed ({baseSpeed:0.000})."; } - playerSpeed.FixedMap.Add(FixedAttribute.Speed, attr => attr[GameAttribute.Running_Rate] = speedValue); + playerSpeed.FixedMap.Add(FixedAttribute.Speed, attr => attr[GameAttributes.Running_Rate] = speedValue); playerSpeed.BroadcastChangedIfRevealed(); return $"Speed changed to {speedValue}"; } diff --git a/src/DiIiS-NA/D3-GameServer/Core/InventoryGrid.cs b/src/DiIiS-NA/D3-GameServer/Core/InventoryGrid.cs index b4468a5..8d2eef0 100644 --- a/src/DiIiS-NA/D3-GameServer/Core/InventoryGrid.cs +++ b/src/DiIiS-NA/D3-GameServer/Core/InventoryGrid.cs @@ -165,7 +165,7 @@ namespace DiIiS_NA.GameServer.Core List baseItems = Items.Values.Where(i => i.GBHandle.GBID == GBid).ToList(); int have = 0; foreach (var itm in baseItems) - have += itm.Attributes[GameAttribute.ItemStackQuantityLo]; + have += itm.Attributes[GameAttributes.ItemStackQuantityLo]; Logger.MethodTrace($"gbid {GBid}, count {have}"); @@ -177,7 +177,7 @@ namespace DiIiS_NA.GameServer.Core List baseItems = Items.Values.Where(i => i.GBHandle.GBID == GBid).ToList(); int have = 0; foreach (var itm in baseItems) - have += itm.Attributes[GameAttribute.ItemStackQuantityLo]; + have += itm.Attributes[GameAttributes.ItemStackQuantityLo]; return have; } @@ -189,14 +189,14 @@ namespace DiIiS_NA.GameServer.Core List consumed = new List(); foreach (var itm in baseItems) { - if (itm.Attributes[GameAttribute.ItemStackQuantityLo] > estimate) + if (itm.Attributes[GameAttributes.ItemStackQuantityLo] > estimate) { - itm.UpdateStackCount(itm.Attributes[GameAttribute.ItemStackQuantityLo] - estimate); + itm.UpdateStackCount(itm.Attributes[GameAttributes.ItemStackQuantityLo] - estimate); break; } else { - estimate -= itm.Attributes[GameAttribute.ItemStackQuantityLo]; + estimate -= itm.Attributes[GameAttributes.ItemStackQuantityLo]; consumed.Add(itm); } } @@ -261,9 +261,9 @@ namespace DiIiS_NA.GameServer.Core List baseItems = Items.Values.Where(i => i.GBHandle.GBID == item.GBHandle.GBID).ToList(); foreach (Item baseItem in baseItems) { - if (baseItem.Attributes[GameAttribute.ItemStackQuantityLo] + item.Attributes[GameAttribute.ItemStackQuantityLo] <= baseItem.ItemDefinition.MaxStackSize) + if (baseItem.Attributes[GameAttributes.ItemStackQuantityLo] + item.Attributes[GameAttributes.ItemStackQuantityLo] <= baseItem.ItemDefinition.MaxStackSize) { - baseItem.UpdateStackCount(baseItem.Attributes[GameAttribute.ItemStackQuantityLo] + item.Attributes[GameAttribute.ItemStackQuantityLo]); + baseItem.UpdateStackCount(baseItem.Attributes[GameAttributes.ItemStackQuantityLo] + item.Attributes[GameAttributes.ItemStackQuantityLo]); baseItem.Attributes.SendChangedMessage((_owner as Player).InGameClient); return; diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/AggressiveNPCBrain.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/AggressiveNPCBrain.cs index 066c852..e54204a 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/AggressiveNPCBrain.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/AggressiveNPCBrain.cs @@ -1,5 +1,4 @@ -using DiIiS_NA.Core.Helpers.Math; -using DiIiS_NA.Core.MPQ; +using DiIiS_NA.Core.MPQ; using DiIiS_NA.GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.ActorSystem; @@ -7,11 +6,8 @@ using DiIiS_NA.GameServer.GSSystem.ActorSystem.Actions; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using DiIiS_NA.Core.Extensions; namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains @@ -42,10 +38,10 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains public override void Think(int tickCounter) { - if (Body.Attributes[GameAttribute.Frozen] || - Body.Attributes[GameAttribute.Stunned] || - Body.Attributes[GameAttribute.Blind] || - Body.Attributes[GameAttribute.Webbed] || + if (Body.Attributes[GameAttributes.Frozen] || + Body.Attributes[GameAttributes.Stunned] || + Body.Attributes[GameAttributes.Blind] || + Body.Attributes[GameAttributes.Webbed] || Body.Disable || Body.World.BuffManager.GetFirstBuff(Body) != null) { diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/HirelingBrain.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/HirelingBrain.cs index 171f3a7..11ef7b7 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/HirelingBrain.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/HirelingBrain.cs @@ -3,9 +3,7 @@ using System.Collections.Generic; using System.Linq; using DiIiS_NA.Core.Extensions; using DiIiS_NA.Core.Helpers.Math; -using DiIiS_NA.Core.MPQ; using DiIiS_NA.GameServer.Core.Types.Math; -using DiIiS_NA.GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.ActorSystem; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Actions; @@ -54,10 +52,10 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains if (Body.World.Game.Paused) return; // check if in disabled state, if so cancel any action then do nothing - if (Body.Attributes[GameAttribute.Frozen] || - Body.Attributes[GameAttribute.Stunned] || - Body.Attributes[GameAttribute.Blind] || - Body.Attributes[GameAttribute.Webbed] || + if (Body.Attributes[GameAttributes.Frozen] || + Body.Attributes[GameAttributes.Stunned] || + Body.Attributes[GameAttributes.Blind] || + Body.Attributes[GameAttributes.Webbed] || Body.Disable || Body.World.BuffManager.GetFirstBuff(Body) != null) { @@ -71,7 +69,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains return; } - if (Body.Attributes[GameAttribute.Feared]) + if (Body.Attributes[GameAttributes.Feared]) { if (!Feared || CurrentAction == null) { diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/LooterBrain.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/LooterBrain.cs index fc164d4..b82991e 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/LooterBrain.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/LooterBrain.cs @@ -5,16 +5,11 @@ using DiIiS_NA.Core.Helpers.Math; using DiIiS_NA.Core.MPQ; using DiIiS_NA.GameServer.Core.Types.Math; using DiIiS_NA.GameServer.Core.Types.SNO; -using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Actions; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement; using DiIiS_NA.GameServer.GSSystem.ItemsSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.PowerSystem; -using DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base; @@ -72,7 +67,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains WorldID = Body.World.GlobalID, }, - Amount = item.Attributes[GameAttribute.ItemStackQuantityLo], + Amount = item.Attributes[GameAttributes.ItemStackQuantityLo], Type = FloatingAmountMessage.FloatType.Gold, }); @@ -101,7 +96,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains WorldID = Body.World.GlobalID, }, - Amount = item.Attributes[GameAttribute.ItemStackQuantityLo], + Amount = item.Attributes[GameAttributes.ItemStackQuantityLo], Type = FloatingAmountMessage.FloatType.BloodStone, }); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/MinionBrain.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/MinionBrain.cs index b474f2e..04fc339 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/MinionBrain.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/MinionBrain.cs @@ -11,7 +11,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.ActorSystem; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Actions; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.PowerSystem; @@ -65,10 +64,10 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains if (Body.World.Game.Paused) return; // check if in disabled state, if so cancel any action then do nothing - if (Body.Attributes[GameAttribute.Frozen] || - Body.Attributes[GameAttribute.Stunned] || - Body.Attributes[GameAttribute.Blind] || - Body.Attributes[GameAttribute.Webbed] || + if (Body.Attributes[GameAttributes.Frozen] || + Body.Attributes[GameAttributes.Stunned] || + Body.Attributes[GameAttributes.Blind] || + Body.Attributes[GameAttributes.Webbed] || Body.Disable || Body.World.BuffManager.GetFirstBuff(Body) != null) { @@ -82,7 +81,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains return; } - if (Body.Attributes[GameAttribute.Feared]) + if (Body.Attributes[GameAttributes.Feared]) { if (!Feared || CurrentAction == null) { @@ -119,7 +118,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains .Cast() .ToList(); if (Body.World.Game.PvP) - targets = (Body as Minion).Master.GetObjectsInRange(30f).Where(p => p.GlobalID != (Body as Minion).Master.GlobalID && p.Attributes[GameAttribute.TeamID] != (Body as Minion).Master.Attributes[GameAttribute.TeamID]).Cast().ToList(); + targets = (Body as Minion).Master.GetObjectsInRange(30f).Where(p => p.GlobalID != (Body as Minion).Master.GlobalID && p.Attributes[GameAttributes.TeamID] != (Body as Minion).Master.Attributes[GameAttributes.TeamID]).Cast().ToList(); if (Body.World.IsPvP) targets = (Body as Minion).Master.GetObjectsInRange(30f).Where(p => p.GlobalID != (Body as Minion).Master.GlobalID).Cast().ToList(); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/MonsterBrain.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/MonsterBrain.cs index 0821a3f..a0c25f4 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/MonsterBrain.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/MonsterBrain.cs @@ -88,7 +88,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains if (Body.Hidden) return; - if (CurrentAction != null && PriorityTarget != null && PriorityTarget.Attributes[GameAttribute.Is_Helper] == true) + if (CurrentAction != null && PriorityTarget != null && PriorityTarget.Attributes[GameAttributes.Is_Helper] == true) { PriorityTarget = null; CurrentAction.Cancel(tickCounter); @@ -103,12 +103,12 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains if (!Body.Visible || Body.Dead) return; if (Body.World.Game.Paused) return; - if (Body.Attributes[GameAttribute.Disabled]) return; + if (Body.Attributes[GameAttributes.Disabled]) return; - if (Body.Attributes[GameAttribute.Frozen] || - Body.Attributes[GameAttribute.Stunned] || - Body.Attributes[GameAttribute.Blind] || - Body.Attributes[GameAttribute.Webbed] || + if (Body.Attributes[GameAttributes.Frozen] || + Body.Attributes[GameAttributes.Stunned] || + Body.Attributes[GameAttributes.Blind] || + Body.Attributes[GameAttributes.Webbed] || Body.Disable || Body.World.BuffManager.GetFirstBuff(Body) != null || Body.World.BuffManager.GetFirstBuff(Body) != null) @@ -123,7 +123,7 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains return; } - if (Body.Attributes[GameAttribute.Feared]) + if (Body.Attributes[GameAttributes.Feared]) { if (!Feared || CurrentAction == null) { @@ -161,15 +161,15 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains { Actor[] targets; - if (Body.Attributes[GameAttribute.Team_Override] == 1) + if (Body.Attributes[GameAttributes.Team_Override] == 1) targets = Body.GetObjectsInRange(60f) .Where(p => !p.Dead) .OrderBy((monster) => PowerMath.Distance2D(monster.Position, Body.Position)) .ToArray(); else targets = Body.GetActorsInRange(50f) - .Where(p => ((p is Player) && !p.Dead && p.Attributes[GameAttribute.Loading] == false && p.Attributes[GameAttribute.Is_Helper] == false && p.World.BuffManager.GetFirstBuff(p) == null) - || ((p is Minion) && !p.Dead && p.Attributes[GameAttribute.Is_Helper] == false) + .Where(p => ((p is Player) && !p.Dead && p.Attributes[GameAttributes.Loading] == false && p.Attributes[GameAttributes.Is_Helper] == false && p.World.BuffManager.GetFirstBuff(p) == null) + || ((p is Minion) && !p.Dead && p.Attributes[GameAttributes.Is_Helper] == false) || (p is DesctructibleLootContainer && p.SNO.IsDoorOrBarricade()) || ((p is Hireling) && !p.Dead) ) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/StayAggressiveNPCBrain.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/StayAggressiveNPCBrain.cs index e0c96a8..38b7aa9 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/StayAggressiveNPCBrain.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/AISystem/Brains/StayAggressiveNPCBrain.cs @@ -1,16 +1,12 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using DiIiS_NA.Core.Extensions; -using DiIiS_NA.Core.Helpers.Math; using DiIiS_NA.Core.MPQ; using DiIiS_NA.GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.ActorSystem; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Actions; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.PowerSystem; using DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations; using DiIiS_NA.GameServer.GSSystem.TickerSystem; @@ -50,10 +46,10 @@ namespace DiIiS_NA.GameServer.GSSystem.AISystem.Brains //if (this.Body is NPC) return; // check if in disabled state, if so cancel any action then do nothing - if (Body.Attributes[GameAttribute.Frozen] || - Body.Attributes[GameAttribute.Stunned] || - Body.Attributes[GameAttribute.Blind] || - Body.Attributes[GameAttribute.Webbed] || + if (Body.Attributes[GameAttributes.Frozen] || + Body.Attributes[GameAttributes.Stunned] || + Body.Attributes[GameAttributes.Blind] || + Body.Attributes[GameAttributes.Webbed] || Body.Disable || Body.World.BuffManager.GetFirstBuff(Body) != null) { diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Actor.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Actor.cs index 0569b7b..fd95c26 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Actor.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Actor.cs @@ -249,7 +249,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem if (ActorData.TagMap.ContainsKey(ActorKeys.TeamID)) { - Attributes[GameAttribute.TeamID] = ActorData.TagMap[ActorKeys.TeamID]; + Attributes[GameAttributes.TeamID] = ActorData.TagMap[ActorKeys.TeamID]; //Logger.Debug("Actor {0} has TeamID {1}", this.ActorSNO.Name, this.Attributes[GameAttribute.TeamID]); } Spawned = false; @@ -362,12 +362,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem if (world.IsPvP) { //this.GlobalIDOverride = World.NewActorPvPID; - Attributes[GameAttribute.Team_Override] = 10; + Attributes[GameAttributes.Team_Override] = 10; } else { //this.GlobalIDOverride = 0; - Attributes[GameAttribute.Team_Override] = -1; + Attributes[GameAttributes.Team_Override] = -1; } World?.Enter(this); // let him enter first. @@ -476,8 +476,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem plr.RevealActorsToPlayer(); plr.ReRevealPlayersToPlayer(); - Attributes[GameAttribute.Looping_Animation_Start_Time] = -1; - Attributes[GameAttribute.Looping_Animation_End_Time] = -1; + Attributes[GameAttributes.Looping_Animation_Start_Time] = -1; + Attributes[GameAttributes.Looping_Animation_End_Time] = -1; Attributes.BroadcastChangedIfRevealed(); //Refresh Inventory plr.Inventory.RefreshInventoryToClient(); @@ -711,7 +711,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem public void NotifyConversation(int status) { //0 - turn off, 1 - yellow "!", 2 - yellow "?", 3 - "*", 4 - bubble, 5 - silver "!", 6 - none (spams errors) - Attributes[GameAttribute.Conversation_Icon, 0] = status + 1; + Attributes[GameAttributes.Conversation_Icon, 0] = status + 1; //this.Attributes[GameAttribute.MinimapIconOverride] = (status > 0) ? 120356 : -1; Attributes.BroadcastChangedIfRevealed(); @@ -719,7 +719,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem public void AddPercentHP(int percentage, bool GuidingLight = false) { - float quantity = percentage * Attributes[GameAttribute.Hitpoints_Max_Total] / 100; + float quantity = percentage * Attributes[GameAttributes.Hitpoints_Max_Total] / 100; AddHP(quantity, GuidingLight); } @@ -727,19 +727,19 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem { if (quantity > 0) { - if (Attributes[GameAttribute.Hitpoints_Cur] < Attributes[GameAttribute.Hitpoints_Max_Total]) + if (Attributes[GameAttributes.Hitpoints_Cur] < Attributes[GameAttributes.Hitpoints_Max_Total]) { - Attributes[GameAttribute.Hitpoints_Cur] = Math.Min( - Attributes[GameAttribute.Hitpoints_Cur] + quantity, - Attributes[GameAttribute.Hitpoints_Max_Total]); + Attributes[GameAttributes.Hitpoints_Cur] = Math.Min( + Attributes[GameAttributes.Hitpoints_Cur] + quantity, + Attributes[GameAttributes.Hitpoints_Max_Total]); Attributes.BroadcastChangedIfRevealed(); } } else { - Attributes[GameAttribute.Hitpoints_Cur] = Math.Max( - Attributes[GameAttribute.Hitpoints_Cur] + quantity, + Attributes[GameAttributes.Hitpoints_Cur] = Math.Max( + Attributes[GameAttributes.Hitpoints_Cur] + quantity, 0); Attributes.BroadcastChangedIfRevealed(); @@ -772,13 +772,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem public void SetUsable(bool activated) { - Attributes[GameAttribute.Team_Override] = activated ? -1 : 2; - Attributes[GameAttribute.Untargetable] = !activated; - Attributes[GameAttribute.NPC_Is_Operatable] = activated; - Attributes[GameAttribute.Operatable] = activated; - Attributes[GameAttribute.Operatable_Story_Gizmo] = activated; - Attributes[GameAttribute.Disabled] = !activated; - Attributes[GameAttribute.Immunity] = !activated; + Attributes[GameAttributes.Team_Override] = activated ? -1 : 2; + Attributes[GameAttributes.Untargetable] = !activated; + Attributes[GameAttributes.NPC_Is_Operatable] = activated; + Attributes[GameAttributes.Operatable] = activated; + Attributes[GameAttributes.Operatable_Story_Gizmo] = activated; + Attributes[GameAttributes.Disabled] = !activated; + Attributes[GameAttributes.Immunity] = !activated; Attributes.BroadcastChangedIfRevealed(); } @@ -906,7 +906,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem if (this is Monster) { - Attributes[GameAttribute.Hitpoints_Cur] += 0.001f; + Attributes[GameAttributes.Hitpoints_Cur] += 0.001f; Attributes.BroadcastChangedIfRevealed(); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/BossPortal.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/BossPortal.cs index 30f39d6..0abe0cf 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/BossPortal.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/BossPortal.cs @@ -1,22 +1,16 @@ -using DiIiS_NA.Core.Helpers.Hash; -using DiIiS_NA.Core.Logging; +using DiIiS_NA.Core.Logging; using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Encounter; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Map; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Portal; //using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Portal; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; using System; -using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Portal; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem { @@ -46,8 +40,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem { Field2 = 0x9;//16; - Attributes[GameAttribute.MinimapActive] = true; - Attributes[GameAttribute.Untargetable] = false; + Attributes[GameAttributes.MinimapActive] = true; + Attributes[GameAttributes.Untargetable] = false; var bossEncounter = ((ActorSNO.Target as DiIiS_NA.Core.MPQ.FileFormats.ActorData).TagMap[MarkerKeys.BossEncounter].Target as DiIiS_NA.Core.MPQ.FileFormats.BossEncounter); DestWorld = bossEncounter.Worlds[0]; switch (DestWorld) @@ -189,13 +183,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem if (actor == null) return false; - actor.Attributes[GameAttribute.Team_Override] = (status ? -1 : 2); - actor.Attributes[GameAttribute.Untargetable] = !status; - actor.Attributes[GameAttribute.NPC_Is_Operatable] = status; - actor.Attributes[GameAttribute.Operatable] = status; - actor.Attributes[GameAttribute.Operatable_Story_Gizmo] = status; - actor.Attributes[GameAttribute.Disabled] = !status; - actor.Attributes[GameAttribute.Immunity] = !status; + actor.Attributes[GameAttributes.Team_Override] = (status ? -1 : 2); + actor.Attributes[GameAttributes.Untargetable] = !status; + actor.Attributes[GameAttributes.NPC_Is_Operatable] = status; + actor.Attributes[GameAttributes.Operatable] = status; + actor.Attributes[GameAttributes.Operatable_Story_Gizmo] = status; + actor.Attributes[GameAttributes.Disabled] = !status; + actor.Attributes[GameAttributes.Immunity] = !status; actor.Attributes.BroadcastChangedIfRevealed(); return true; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Gizmo.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Gizmo.cs index 5b6887d..687c300 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Gizmo.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Gizmo.cs @@ -20,8 +20,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem Field2 = 0x9;//16; Field7 = 0x00000001; //this.CollFlags = 1; // this.CollFlags = 0; a hack for passing through blockers /fasbat - if (Attributes[GameAttribute.TeamID] == 10) Attributes[GameAttribute.TeamID] = 1; //fix for bugged gizmos - Attributes[GameAttribute.Hitpoints_Cur] = 1; + if (Attributes[GameAttributes.TeamID] == 10) Attributes[GameAttributes.TeamID] = 1; //fix for bugged gizmos + Attributes[GameAttributes.Hitpoints_Cur] = 1; //this.Attributes[GameAttribute.MinimapActive] = true; } @@ -34,7 +34,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem public override void OnTargeted(Player player, TargetMessage message) { - if (Attributes[GameAttribute.Disabled] == true) return; + if (Attributes[GameAttributes.Disabled] == true) return; Logger.Trace("(OnTargeted) Gizmo has been activated! Id: {0}, Type: {1}", SNO, ActorData.TagMap[ActorKeys.GizmoGroup]); //handling quest triggers diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/ArtisanShortcut.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/ArtisanShortcut.cs index 399d3c1..e387356 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/ArtisanShortcut.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/ArtisanShortcut.cs @@ -49,8 +49,8 @@ namespace DiIiS_NA.D3_GameServer.GSSystem.ActorSystem.Implementations.Artisans public ArtisanShortcut(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = false; - Attributes[GameAttribute.Conversation_Icon, 0] = 0; + Attributes[GameAttributes.MinimapActive] = false; + Attributes[GameAttributes.Conversation_Icon, 0] = 0; } public override void OnTargeted(Player player, TargetMessage message) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/Jeweler.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/Jeweler.cs index 61b77a6..aa3b51d 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/Jeweler.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/Jeweler.cs @@ -19,7 +19,7 @@ namespace DiIiS_NA.D3_GameServer.GSSystem.ActorSystem.Implementations.Artisans public void OnAddSocket(Player player, Item item) { // TODO: Animate Jeweler? Who knows. /fasbat - item.Attributes[GameAttribute.Sockets] += 1; + item.Attributes[GameAttributes.Sockets] += 1; // Why this not work? :/ item.Attributes.SendChangedMessage(player.InGameClient); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/Nephalem.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/Nephalem.cs index 57a0367..8329342 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/Nephalem.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Artisans/Nephalem.cs @@ -14,7 +14,7 @@ namespace DiIiS_NA.D3_GameServer.GSSystem.ActorSystem.Implementations.Artisans public Nephalem(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.In_Tiered_Loot_Run_Level] = 0; + Attributes[GameAttributes.In_Tiered_Loot_Run_Level] = 0; //this.Attributes[GameAttribute.Conversation_Icon] = 2; //this.ForceConversationSNO = } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Banner.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Banner.cs index a4dd99d..5091f32 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Banner.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Banner.cs @@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { class Banner : Gizmo { - private static readonly Dictionary bannerActors = new Dictionary() + private static readonly Dictionary bannerActors = new() { [0] = new ActorSno[] { ActorSno._banner_player_1, @@ -72,7 +72,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations } //if banner has been disabled for events like active greater active swarm /advocaite - if(!player.Attributes[GameAttribute.Banner_Usable]) + if(!player.Attributes[GameAttributes.Banner_Usable]) { return; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Boss.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Boss.cs index 5f4f012..282a8f2 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Boss.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Boss.cs @@ -2,11 +2,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using DiIiS_NA.Core.Logging; using DiIiS_NA.Core.MPQ.FileFormats; @@ -74,15 +69,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { if (sno == ActorSno._zoltunkulle && world.SNO == WorldSno.a2dun_zolt_lobby) SetVisible(false); - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; //this.Attributes[GameAttribute.Immune_To_Charm] = true; - Attributes[GameAttribute.using_Bossbar] = true; - Attributes[GameAttribute.InBossEncounter] = true; - Attributes[GameAttribute.Hitpoints_Max] *= GameServerConfig.Instance.BossHealthMultiplier; - Attributes[GameAttribute.Damage_Weapon_Min, 0] *= GameServerConfig.Instance.BossDamageMultiplier; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] *= GameServerConfig.Instance.BossDamageMultiplier; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.TeamID] = 10; + Attributes[GameAttributes.using_Bossbar] = true; + Attributes[GameAttributes.InBossEncounter] = true; + Attributes[GameAttributes.Hitpoints_Max] *= GameServerConfig.Instance.BossHealthMultiplier; + Attributes[GameAttributes.Damage_Weapon_Min, 0] *= GameServerConfig.Instance.BossDamageMultiplier; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] *= GameServerConfig.Instance.BossDamageMultiplier; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.TeamID] = 10; WalkSpeed *= 0.5f; if (Brain is MonsterBrain monsterBrain) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CR_Glass.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CR_Glass.cs index a4c611e..8c20191 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CR_Glass.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CR_Glass.cs @@ -13,8 +13,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public CR_Glass(MapSystem.World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.TeamID] = 2; - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.TeamID] = 2; + Attributes[GameAttributes.MinimapActive] = true; Attributes.BroadcastChangedIfRevealed(); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CathedralLamp.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CathedralLamp.cs index 9d899db..333fcf7 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CathedralLamp.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CathedralLamp.cs @@ -7,7 +7,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; using System; -using System.Linq; using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations @@ -35,10 +34,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations Type = FloatingNumberMessage.FloatType.White }, this); - Attributes[GameAttribute.Hitpoints_Cur] = Math.Max(Attributes[GameAttribute.Hitpoints_Cur] - damage, 0); + Attributes[GameAttributes.Hitpoints_Cur] = Math.Max(Attributes[GameAttributes.Hitpoints_Cur] - damage, 0); Attributes.BroadcastChangedIfRevealed(); - if (Attributes[GameAttribute.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable()) + if (Attributes[GameAttributes.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable()) Die(source); } @@ -68,11 +67,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations }, this); - Attributes[GameAttribute.Deleted_On_Server] = true; - Attributes[GameAttribute.Could_Have_Ragdolled] = true; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f; + Attributes[GameAttributes.Deleted_On_Server] = true; + Attributes[GameAttributes.Could_Have_Ragdolled] = true; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f; Attributes.BroadcastChangedIfRevealed(); Task.Delay(1500).ContinueWith(delegate diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CathedralWall.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CathedralWall.cs index 117610e..de07459 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CathedralWall.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CathedralWall.cs @@ -7,7 +7,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; using System; -using System.Linq; using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations @@ -34,10 +33,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations Type = FloatingNumberMessage.FloatType.White }, this); - Attributes[GameAttribute.Hitpoints_Cur] = Math.Max(Attributes[GameAttribute.Hitpoints_Cur] - damage, 0); + Attributes[GameAttributes.Hitpoints_Cur] = Math.Max(Attributes[GameAttributes.Hitpoints_Cur] - damage, 0); Attributes.BroadcastChangedIfRevealed(); - if (Attributes[GameAttribute.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable()) + if (Attributes[GameAttributes.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable()) Die(source); } @@ -67,11 +66,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations }, this); - Attributes[GameAttribute.Deleted_On_Server] = true; - Attributes[GameAttribute.Could_Have_Ragdolled] = true; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f; + Attributes[GameAttributes.Deleted_On_Server] = true; + Attributes[GameAttributes.Could_Have_Ragdolled] = true; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f; Attributes.BroadcastChangedIfRevealed(); Task.Delay(1400).ContinueWith(delegate diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ChallengeObelisk.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ChallengeObelisk.cs index 679c5b5..20cf6f3 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ChallengeObelisk.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ChallengeObelisk.cs @@ -6,10 +6,6 @@ using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations @@ -20,8 +16,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public ChallengeObelisk(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.TeamID] = 2; - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.TeamID] = 2; + Attributes[GameAttributes.MinimapActive] = true; Attributes.BroadcastChangedIfRevealed(); } @@ -30,13 +26,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations bool activated = false; PlayAnimation(5, (AnimationSno)AnimationSet.TagMapAnimDefault[AnimationSetKeys.Opening]); - Attributes[GameAttribute.Team_Override] = (activated ? -1 : 2); - Attributes[GameAttribute.Untargetable] = !activated; - Attributes[GameAttribute.NPC_Is_Operatable] = activated; - Attributes[GameAttribute.Operatable] = activated; - Attributes[GameAttribute.Operatable_Story_Gizmo] = activated; - Attributes[GameAttribute.Disabled] = !activated; - Attributes[GameAttribute.Immunity] = !activated; + Attributes[GameAttributes.Team_Override] = (activated ? -1 : 2); + Attributes[GameAttributes.Untargetable] = !activated; + Attributes[GameAttributes.NPC_Is_Operatable] = activated; + Attributes[GameAttributes.Operatable] = activated; + Attributes[GameAttributes.Operatable_Story_Gizmo] = activated; + Attributes[GameAttributes.Disabled] = !activated; + Attributes[GameAttributes.Immunity] = !activated; Attributes.BroadcastChangedIfRevealed(); CollFlags = 0; @@ -61,7 +57,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { if (!base.Reveal(player)) return false; - if (!Attributes[GameAttribute.Operatable]) + if (!Attributes[GameAttributes.Operatable]) { var actor = World.GetActorBySNO(ActorSno._x1_openworld_challenge_rifts_portal); actor.SetVisible(false); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Champion.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Champion.cs index 101eca8..0840596 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Champion.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Champion.cs @@ -1,6 +1,5 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.GeneratorsSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; @@ -17,15 +16,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public Champion(MapSystem.World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Hitpoints_Max] *= 4.0f; - Attributes[GameAttribute.Immune_To_Charm] = true; - Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 2.5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] *= 2.5f; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Max] *= 4.0f; + Attributes[GameAttributes.Immune_To_Charm] = true; + Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 2.5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] *= 2.5f; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; //MonsterAffixGenerator.Generate(this, this.World.Game.Difficulty + 1); - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.3f; NamePrefix = MonsterAffixGenerator.GeneratePrefixName(); NameSuffix = MonsterAffixGenerator.GenerateSuffixName(); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Checkpoint.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Checkpoint.cs index dd5fdc3..bc06f36 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Checkpoint.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Checkpoint.cs @@ -30,7 +30,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations }); player.CheckPointPosition = Position; - player.Attributes[GameAttribute.Corpse_Resurrection_Charges] = 3; // Reset corpse resurrection charges + player.Attributes[GameAttributes.Corpse_Resurrection_Charges] = 3; // Reset corpse resurrection charges } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CursedChest.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CursedChest.cs index 1a08ae7..f964fbd 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CursedChest.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CursedChest.cs @@ -1,11 +1,8 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.MessageSystem; -using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using DiIiS_NA.Core.Extensions; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations @@ -16,7 +13,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public CursedChest(MapSystem.World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; } private bool _collapsed = false; diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CursedShrine.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CursedShrine.cs index 1e57e58..9c8aa06 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CursedShrine.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/CursedShrine.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using DiIiS_NA.Core.Extensions; using DiIiS_NA.GameServer.Core.Types.TagMap; @@ -20,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public CursedShrine(MapSystem.World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; } private bool _collapsed = false; @@ -93,9 +92,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations } break; } - Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; + Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; //this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID); - Attributes[GameAttribute.Gizmo_State] = 1; + Attributes[GameAttributes.Gizmo_State] = 1; Attributes.BroadcastChangedIfRevealed(); var rewardChests = GetActorsInRange(20f).Where(c => c.rewardChestAvailable == false).ToList(); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/DesctructibleLootContainer.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/DesctructibleLootContainer.cs index d6f4714..c7f147e 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/DesctructibleLootContainer.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/DesctructibleLootContainer.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Linq; using DiIiS_NA.Core.Helpers.Math; using DiIiS_NA.D3_GameServer.Core.Types.SNO; @@ -47,12 +46,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations Type = FloatingNumberMessage.FloatType.White }, this); - Attributes[GameAttribute.Hitpoints_Cur] = Math.Max(Attributes[GameAttribute.Hitpoints_Cur] - damage, 0); + Attributes[GameAttributes.Hitpoints_Cur] = Math.Max(Attributes[GameAttributes.Hitpoints_Cur] - damage, 0); //Attributes[GameAttribute.Last_Damage_ACD] = unchecked((int)source.DynamicID); Attributes.BroadcastChangedIfRevealed(); - if (Attributes[GameAttribute.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable()) + if (Attributes[GameAttributes.Hitpoints_Cur] == 0 && !SNO.IsUndestroyable()) { Die(source); } @@ -76,7 +75,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations World.SpawnRandomGem(this, plr); if (seed < 0.10f) World.SpawnRandomPotion(this, plr); - if (seed < (rate * (1f + plr.Attributes[GameAttribute.Magic_Find]))) + if (seed < (rate * (1f + plr.Attributes[GameAttributes.Magic_Find]))) { var lootQuality = World.Game.IsHardcore ? LootManager.GetSeasonalLootQuality((int)Quality, World.Game.Difficulty) : LootManager.GetLootQuality((int)Quality, World.Game.Difficulty); World.SpawnRandomEquip(plr, plr, lootQuality); @@ -113,8 +112,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations }, this); - Attributes[GameAttribute.Deleted_On_Server] = true; - Attributes[GameAttribute.Could_Have_Ragdolled] = true; + Attributes[GameAttributes.Deleted_On_Server] = true; + Attributes[GameAttributes.Could_Have_Ragdolled] = true; Attributes.BroadcastChangedIfRevealed(); //handling quest triggers diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Door.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Door.cs index b366839..35ac829 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Door.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Door.cs @@ -7,10 +7,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations @@ -107,9 +103,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations AnimationSNO = AnimationSetKeys.Open.ID }, this); - Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; + Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; //this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID); - Attributes[GameAttribute.Gizmo_State] = 1; + Attributes[GameAttributes.Gizmo_State] = 1; CollFlags = 0; isOpened = true; @@ -130,11 +126,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public override void OnTargeted(Player player, TargetMessage message) { - if (Attributes[GameAttribute.Disabled]) return; + if (Attributes[GameAttributes.Disabled]) return; Open(); base.OnTargeted(player, message); - Attributes[GameAttribute.Disabled] = true; + Attributes[GameAttributes.Disabled] = true; } private bool WaitToSpawn(TickerSystem.TickTimer timer) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/DungeonStonePortal.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/DungeonStonePortal.cs index 371d605..4237c87 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/DungeonStonePortal.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/DungeonStonePortal.cs @@ -1,5 +1,4 @@ using System; -using System.Linq; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; @@ -25,7 +24,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { //this.Field2 = 0x9;//16; - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; //this.Attributes[GameAttribute.MinimapIconOverride] = 218394; if (World.SNO.IsDungeon()) { diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/EquipmentManager.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/EquipmentManager.cs index b8cd3f9..4c46951 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/EquipmentManager.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/EquipmentManager.cs @@ -4,11 +4,6 @@ using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Misc; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -18,7 +13,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public EquipmentManager(MapSystem.World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; } public override void OnTargeted(Player player, TargetMessage message) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Ghost.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Ghost.cs index 0cc6b8e..38a4b77 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Ghost.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Ghost.cs @@ -23,7 +23,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Goblin.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Goblin.cs index 66601bf..e91b5ac 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Goblin.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Goblin.cs @@ -1,12 +1,9 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; -using DiIiS_NA.GameServer.GSSystem.GeneratorsSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Misc; -using System; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -23,13 +20,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations // Override minimap icon in markerset tags WalkSpeed = 0; Brain = new MonsterBrain(this); - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; //this.Attributes[GameAttribute.MinimapIconOverride] = 123152; - Attributes[GameAttribute.Hitpoints_Max] *= 3f; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Max] *= 3f; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; //this.Attributes[GameAttribute.Immune_To_Charm] = true; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 0f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 0f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 0f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 0f; //(this.Brain as MonsterBrain).AddPresetPower(54055); //TreasureGoblinPause (Brain as MonsterBrain).AddPresetPower(105371); //TreasureGoblin_Escape } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Headstone.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Headstone.cs index 040370a..f16819e 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Headstone.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Headstone.cs @@ -17,10 +17,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { this.playerIndex = playerIndex; - Attributes[GameAttribute.MinimapActive] = true; - Attributes[GameAttribute.Headstone_Player_ANN] = 1; - Attributes[GameAttribute.TeamID] = 1; - if (World.Game.PvP) Attributes[GameAttribute.Disabled] = true; + Attributes[GameAttributes.MinimapActive] = true; + Attributes[GameAttributes.Headstone_Player_ANN] = 1; + Attributes[GameAttributes.TeamID] = 1; + if (World.Game.PvP) Attributes[GameAttributes.Disabled] = true; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Healer.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Healer.cs index c2e3a5f..9a106bd 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Healer.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Healer.cs @@ -1,5 +1,4 @@ -using System.Linq; -using DiIiS_NA.D3_GameServer.Core.Types.SNO; +using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.MessageSystem; @@ -18,8 +17,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public Healer(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.TeamID] = 0; - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.TeamID] = 0; + Attributes[GameAttributes.MinimapActive] = true; } public override void OnTargeted(PlayerSystem.Player player, TargetMessage message) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Healthwell.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Healthwell.cs index 7674534..6e9568c 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Healthwell.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Healthwell.cs @@ -3,11 +3,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -16,8 +11,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public Healthwell(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; - Attributes[GameAttribute.Gizmo_State] = 0; + Attributes[GameAttributes.MinimapActive] = true; + Attributes[GameAttributes.Gizmo_State] = 0; } @@ -25,9 +20,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { //Logger.Warn("Healthwell has no function, Powers not implemented"); - Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; + Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; //this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID); - Attributes[GameAttribute.Gizmo_State] = 1; + Attributes[GameAttributes.Gizmo_State] = 1; Attributes.BroadcastChangedIfRevealed(); player.AddPercentageHP(50); player.AddAchievementCounter(74987243307169, 1); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/HearthPortal.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/HearthPortal.cs index a260a0e..8aa0d16 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/HearthPortal.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/HearthPortal.cs @@ -5,11 +5,6 @@ using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -24,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public HearthPortal(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; SetVisible(false); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/HiddenVendor.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/HiddenVendor.cs index d99821f..2fcfcf3 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/HiddenVendor.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/HiddenVendor.cs @@ -5,11 +5,7 @@ using DiIiS_NA.GameServer.GSSystem.ItemsSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -52,7 +48,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations for (int i = 0; i < 9; i++) { var itm = ItemGenerator.GenerateRandomEquip(this, level, 6, 7); - itm.Attributes[GameAttribute.Item_Cost_Percent_Bonus] = 3f; + itm.Attributes[GameAttributes.Item_Cost_Percent_Bonus] = 3f; list.Add(itm); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Enchantress.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Enchantress.cs index fe06c72..59ce079 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Enchantress.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Enchantress.cs @@ -19,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings proxySNO = ActorSno._hireling_enchantress_proxy; skillKit = 484938; hirelingGBID = StringHashHelper.HashItemName("Enchantress"); - Attributes[GameAttribute.Hireling_Class] = 3; + Attributes[GameAttributes.Hireling_Class] = 3; } public override Hireling CreateHireling(MapSystem.World world, ActorSno sno, TagMap tags) @@ -35,8 +35,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 102057: case 101969: player.HirelingInfo[3].Skill1SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 102057 ? 101969 : 102057)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 102057 ? 101969 : 102057)] = 0; Attributes.BroadcastChangedIfRevealed(); dbhireling.Skill1SNOId = SkillSNOId; @@ -45,8 +45,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 102133: case 101461: player.HirelingInfo[3].Skill2SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 102133 ? 101461 : 102133)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 102133 ? 101461 : 102133)] = 0; Attributes.BroadcastChangedIfRevealed(); dbhireling.Skill2SNOId = SkillSNOId; @@ -55,8 +55,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 101990: case 220872: player.HirelingInfo[3].Skill3SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 101990 ? 220872 : 101990)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 101990 ? 220872 : 101990)] = 0; Attributes.BroadcastChangedIfRevealed(); dbhireling.Skill3SNOId = SkillSNOId; @@ -65,8 +65,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 101425: case 201524: player.HirelingInfo[3].Skill4SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 101425 ? 201524 : 101425)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 101425 ? 201524 : 101425)] = 0; Attributes.BroadcastChangedIfRevealed(); dbhireling.Skill4SNOId = SkillSNOId; @@ -91,14 +91,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings player.HirelingInfo[3].Skill3SNOId = -1; player.HirelingInfo[3].Skill4SNOId = -1; - Attributes[GameAttribute.Skill, 102057] = 0; - Attributes[GameAttribute.Skill, 101969] = 0; - Attributes[GameAttribute.Skill, 102133] = 0; - Attributes[GameAttribute.Skill, 101461] = 0; - Attributes[GameAttribute.Skill, 101990] = 0; - Attributes[GameAttribute.Skill, 220872] = 0; - Attributes[GameAttribute.Skill, 101425] = 0; - Attributes[GameAttribute.Skill, 201524] = 0; + Attributes[GameAttributes.Skill, 102057] = 0; + Attributes[GameAttributes.Skill, 101969] = 0; + Attributes[GameAttributes.Skill, 102133] = 0; + Attributes[GameAttributes.Skill, 101461] = 0; + Attributes[GameAttributes.Skill, 101990] = 0; + Attributes[GameAttributes.Skill, 220872] = 0; + Attributes[GameAttributes.Skill, 101425] = 0; + Attributes[GameAttributes.Skill, 201524] = 0; Attributes.SendChangedMessage(player.InGameClient); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Hireling.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Hireling.cs index e237c6b..00fa88d 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Hireling.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Hireling.cs @@ -4,11 +4,8 @@ using System.Linq; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Pet; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using DiIiS_NA.GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.ObjectsSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem; using DiIiS_NA.Core.MPQ.FileFormats; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Interactions; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Inventory; @@ -43,25 +40,25 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings public Hireling(MapSystem.World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; Interactions.Add(new HireInteraction()); Interactions.Add(new InventoryInteraction()); if (skillKit != -1) - Attributes[GameAttribute.SkillKit] = skillKit; + Attributes[GameAttributes.SkillKit] = skillKit; } public void SetUpAttributes(Player player) { owner = player; - var info = player.HirelingInfo[Attributes[GameAttribute.Hireling_Class]]; + var info = player.HirelingInfo[Attributes[GameAttributes.Hireling_Class]]; //* // TODO: fix this hardcoded crap if (!IsProxy) - Attributes[GameAttribute.Buff_Visual_Effect, 0x000FFFFF] = true; + Attributes[GameAttributes.Buff_Visual_Effect, 0x000FFFFF] = true; - Attributes[GameAttribute.Level] = player.Level; - Attributes[GameAttribute.Experience_Next_Lo] = 0; + Attributes[GameAttributes.Level] = player.Level; + Attributes[GameAttributes.Experience_Next_Lo] = 0; if (!IsHireling && !IsProxy) // original doesn't need more attribs return; @@ -69,70 +66,70 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings if (info.Skill1SNOId != -1) { //scripted //this.Attributes[GameAttribute.Skill_Total, info.Skill1SNOId] = 1; - Attributes[GameAttribute.Skill, info.Skill1SNOId] = 1; + Attributes[GameAttributes.Skill, info.Skill1SNOId] = 1; } if (info.Skill2SNOId != -1) { //scripted //this.Attributes[GameAttribute.Skill_Total, info.Skill2SNOId] = 1; - Attributes[GameAttribute.Skill, info.Skill2SNOId] = 1; + Attributes[GameAttributes.Skill, info.Skill2SNOId] = 1; } if (info.Skill3SNOId != -1) { //scripted //this.Attributes[GameAttribute.Skill_Total, info.Skill3SNOId] = 1; - Attributes[GameAttribute.Skill, info.Skill3SNOId] = 1; + Attributes[GameAttributes.Skill, info.Skill3SNOId] = 1; } if (info.Skill4SNOId != -1) { //scripted //this.Attributes[GameAttribute.Skill_Total, info.Skill4SNOId] = 1; - Attributes[GameAttribute.Skill, info.Skill4SNOId] = 1; + Attributes[GameAttributes.Skill, info.Skill4SNOId] = 1; } /**/ _lastResourceUpdateTick = 0; - Attributes[GameAttribute.SkillKit] = skillKit; + Attributes[GameAttributes.SkillKit] = skillKit; WalkSpeed = 0.45f; #region hardcoded attribs :/ //* - Attributes[GameAttribute.Attacks_Per_Second] = 1f; - Attributes[GameAttribute.Attacks_Per_Second_Item] = 1.199219f; - Attributes[GameAttribute.Casting_Speed] = 1; - Attributes[GameAttribute.Damage_Delta, 0] = 1f; - Attributes[GameAttribute.Damage_Min, 0] = 1f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 2f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 6f; - Attributes[GameAttribute.General_Cooldown] = 0; - Attributes[GameAttribute.Hit_Chance] = 1; - Attributes[GameAttribute.Hitpoints_Factor_Vitality] = 10f + Math.Max(Attributes[GameAttribute.Level] - 35, 0); - Attributes[GameAttribute.Hitpoints_Max] = 276f; - Attributes[GameAttribute.Hitpoints_Cur] = 1f; - Attributes[GameAttribute.Level_Cap] = 70; - Attributes[GameAttribute.Movement_Scalar] = 1; - Attributes[GameAttribute.Resource_Max, 0] = 1.0f; - Attributes[GameAttribute.Resource_Cur, 0] = 1.0f; - Attributes[GameAttribute.Resource_Type_Primary] = 0; - Attributes[GameAttribute.Running_Rate] = 0.3598633f; - Attributes[GameAttribute.Sprinting_Rate] = 0.3598633f; - Attributes[GameAttribute.Strafing_Rate] = 0.1799316f; - Attributes[GameAttribute.Walking_Rate] = 0.3598633f; + Attributes[GameAttributes.Attacks_Per_Second] = 1f; + Attributes[GameAttributes.Attacks_Per_Second_Item] = 1.199219f; + Attributes[GameAttributes.Casting_Speed] = 1; + Attributes[GameAttributes.Damage_Delta, 0] = 1f; + Attributes[GameAttributes.Damage_Min, 0] = 1f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 2f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 6f; + Attributes[GameAttributes.General_Cooldown] = 0; + Attributes[GameAttributes.Hit_Chance] = 1; + Attributes[GameAttributes.Hitpoints_Factor_Vitality] = 10f + Math.Max(Attributes[GameAttributes.Level] - 35, 0); + Attributes[GameAttributes.Hitpoints_Max] = 276f; + Attributes[GameAttributes.Hitpoints_Cur] = 1f; + Attributes[GameAttributes.Level_Cap] = 70; + Attributes[GameAttributes.Movement_Scalar] = 1; + Attributes[GameAttributes.Resource_Max, 0] = 1.0f; + Attributes[GameAttributes.Resource_Cur, 0] = 1.0f; + Attributes[GameAttributes.Resource_Type_Primary] = 0; + Attributes[GameAttributes.Running_Rate] = 0.3598633f; + Attributes[GameAttributes.Sprinting_Rate] = 0.3598633f; + Attributes[GameAttributes.Strafing_Rate] = 0.1799316f; + Attributes[GameAttributes.Walking_Rate] = 0.3598633f; if (IsProxy) return; - Attributes[GameAttribute.Callout_Cooldown, 0x000FFFFF] = 0x00000797; - Attributes[GameAttribute.Buff_Visual_Effect, 0x000FFFFF] = true; - Attributes[GameAttribute.Buff_Icon_Count0, 0x000075C1] = 1; - Attributes[GameAttribute.Buff_Exclusive_Type_Active, 0x000075C1] = true; - Attributes[GameAttribute.Conversation_Icon, 0] = 1; - Attributes[GameAttribute.Buff_Exclusive_Type_Active, 0x20c51] = true; - Attributes[GameAttribute.Buff_Icon_End_Tick0, 0x00020C51] = 0x00000A75; - Attributes[GameAttribute.Buff_Icon_Start_Tick0, 0x00020C51] = 0x00000375; - Attributes[GameAttribute.Buff_Icon_Count0, 0x00020C51] = 3; - Attributes[GameAttribute.Callout_Cooldown, 0x1618a] = 743; - Attributes[GameAttribute.Callout_Cooldown, 0x01CAB6] = 743; + Attributes[GameAttributes.Callout_Cooldown, 0x000FFFFF] = 0x00000797; + Attributes[GameAttributes.Buff_Visual_Effect, 0x000FFFFF] = true; + Attributes[GameAttributes.Buff_Icon_Count0, 0x000075C1] = 1; + Attributes[GameAttributes.Buff_Exclusive_Type_Active, 0x000075C1] = true; + Attributes[GameAttributes.Conversation_Icon, 0] = 1; + Attributes[GameAttributes.Buff_Exclusive_Type_Active, 0x20c51] = true; + Attributes[GameAttributes.Buff_Icon_End_Tick0, 0x00020C51] = 0x00000A75; + Attributes[GameAttributes.Buff_Icon_Start_Tick0, 0x00020C51] = 0x00000375; + Attributes[GameAttributes.Buff_Icon_Count0, 0x00020C51] = 3; + Attributes[GameAttributes.Callout_Cooldown, 0x1618a] = 743; + Attributes[GameAttributes.Callout_Cooldown, 0x01CAB6] = 743; //*/ #endregion @@ -150,59 +147,59 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings //* try { - Attributes[GameAttribute.Vitality] = 5f + (Attributes[GameAttribute.Level] * 2) + (GetItemBonus(GameAttribute.Vitality_Item));// * 2.5f); - Attributes[GameAttribute.Strength] = 5f + (Attributes[GameAttribute.Level] * (this is Templar ? 3 : 1)) + (GetItemBonus(GameAttribute.Strength_Item));// * 2.5f); - Attributes[GameAttribute.Dexterity] = 5f + (Attributes[GameAttribute.Level] * (this is Scoundrel ? 3 : 1)) + (GetItemBonus(GameAttribute.Dexterity_Item));// * 2.5f); - Attributes[GameAttribute.Intelligence] = 5f + (Attributes[GameAttribute.Level] * (this is Enchantress ? 3 : 1)) + (GetItemBonus(GameAttribute.Intelligence_Item));// * 2.5f); + Attributes[GameAttributes.Vitality] = 5f + (Attributes[GameAttributes.Level] * 2) + (GetItemBonus(GameAttributes.Vitality_Item));// * 2.5f); + Attributes[GameAttributes.Strength] = 5f + (Attributes[GameAttributes.Level] * (this is Templar ? 3 : 1)) + (GetItemBonus(GameAttributes.Strength_Item));// * 2.5f); + Attributes[GameAttributes.Dexterity] = 5f + (Attributes[GameAttributes.Level] * (this is Scoundrel ? 3 : 1)) + (GetItemBonus(GameAttributes.Dexterity_Item));// * 2.5f); + Attributes[GameAttributes.Intelligence] = 5f + (Attributes[GameAttributes.Level] * (this is Enchantress ? 3 : 1)) + (GetItemBonus(GameAttributes.Intelligence_Item));// * 2.5f); - Attributes[GameAttribute.Attacks_Per_Second_Item] = GetItemBonus(GameAttribute.Attacks_Per_Second_Item); + Attributes[GameAttributes.Attacks_Per_Second_Item] = GetItemBonus(GameAttributes.Attacks_Per_Second_Item); //* - Attributes[GameAttribute.Crit_Percent_Bonus_Capped] = GetItemBonus(GameAttribute.Crit_Percent_Bonus_Capped); - Attributes[GameAttribute.Weapon_Crit_Chance] = GetItemBonus(GameAttribute.Weapon_Crit_Chance); - Attributes[GameAttribute.Crit_Damage_Percent] = 0.5f + GetItemBonus(GameAttribute.Crit_Damage_Percent); - Attributes[GameAttribute.Crit_Percent_Bonus_Uncapped] = GetItemBonus(GameAttribute.Crit_Percent_Bonus_Uncapped); + Attributes[GameAttributes.Crit_Percent_Bonus_Capped] = GetItemBonus(GameAttributes.Crit_Percent_Bonus_Capped); + Attributes[GameAttributes.Weapon_Crit_Chance] = GetItemBonus(GameAttributes.Weapon_Crit_Chance); + Attributes[GameAttributes.Crit_Damage_Percent] = 0.5f + GetItemBonus(GameAttributes.Crit_Damage_Percent); + Attributes[GameAttributes.Crit_Percent_Bonus_Uncapped] = GetItemBonus(GameAttributes.Crit_Percent_Bonus_Uncapped); - Attributes[GameAttribute.Armor_Item] = GetItemBonus(GameAttribute.Armor_Item); + Attributes[GameAttributes.Armor_Item] = GetItemBonus(GameAttributes.Armor_Item); //* for (int i = 0; i < 7; i++) { - Attributes[GameAttribute.Damage_Weapon_Min, i] = Math.Max(GetItemBonus(GameAttribute.Damage_Weapon_Min, i), 2f) + GetItemBonus(GameAttribute.Damage_Min, i); - Attributes[GameAttribute.Damage_Weapon_Delta, i] = Math.Max(GetItemBonus(GameAttribute.Damage_Weapon_Delta_Total, i), 2f) + GetItemBonus(GameAttribute.Damage_Delta, i); - Attributes[GameAttribute.Damage_Weapon_Bonus_Min, i] = GetItemBonus(GameAttribute.Damage_Weapon_Bonus_Min, i); - Attributes[GameAttribute.Damage_Weapon_Bonus_Delta, i] = GetItemBonus(GameAttribute.Damage_Weapon_Bonus_Delta, i); - Attributes[GameAttribute.Resistance, i] = GetItemBonus(GameAttribute.Resistance, i); + Attributes[GameAttributes.Damage_Weapon_Min, i] = Math.Max(GetItemBonus(GameAttributes.Damage_Weapon_Min, i), 2f) + GetItemBonus(GameAttributes.Damage_Min, i); + Attributes[GameAttributes.Damage_Weapon_Delta, i] = Math.Max(GetItemBonus(GameAttributes.Damage_Weapon_Delta_Total, i), 2f) + GetItemBonus(GameAttributes.Damage_Delta, i); + Attributes[GameAttributes.Damage_Weapon_Bonus_Min, i] = GetItemBonus(GameAttributes.Damage_Weapon_Bonus_Min, i); + Attributes[GameAttributes.Damage_Weapon_Bonus_Delta, i] = GetItemBonus(GameAttributes.Damage_Weapon_Bonus_Delta, i); + Attributes[GameAttributes.Resistance, i] = GetItemBonus(GameAttributes.Resistance, i); } //*/ - Attributes[GameAttribute.Resistance_All] = GetItemBonus(GameAttribute.Resistance_All); - Attributes[GameAttribute.Resistance_Percent_All] = GetItemBonus(GameAttribute.Resistance_Percent_All); - Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] = GetItemBonus(GameAttribute.Damage_Percent_Reduction_From_Melee); - Attributes[GameAttribute.Damage_Percent_Reduction_From_Ranged] = GetItemBonus(GameAttribute.Damage_Percent_Reduction_From_Ranged); + Attributes[GameAttributes.Resistance_All] = GetItemBonus(GameAttributes.Resistance_All); + Attributes[GameAttributes.Resistance_Percent_All] = GetItemBonus(GameAttributes.Resistance_Percent_All); + Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] = GetItemBonus(GameAttributes.Damage_Percent_Reduction_From_Melee); + Attributes[GameAttributes.Damage_Percent_Reduction_From_Ranged] = GetItemBonus(GameAttributes.Damage_Percent_Reduction_From_Ranged); - Attributes[GameAttribute.Thorns_Fixed] = GetItemBonus(GameAttribute.Thorns_Fixed, 0); + Attributes[GameAttributes.Thorns_Fixed] = GetItemBonus(GameAttributes.Thorns_Fixed, 0); - Attributes[GameAttribute.Steal_Health_Percent] = GetItemBonus(GameAttribute.Steal_Health_Percent); - Attributes[GameAttribute.Hitpoints_On_Hit] = GetItemBonus(GameAttribute.Hitpoints_On_Hit); - Attributes[GameAttribute.Hitpoints_On_Kill] = GetItemBonus(GameAttribute.Hitpoints_On_Kill); + Attributes[GameAttributes.Steal_Health_Percent] = GetItemBonus(GameAttributes.Steal_Health_Percent); + Attributes[GameAttributes.Hitpoints_On_Hit] = GetItemBonus(GameAttributes.Hitpoints_On_Hit); + Attributes[GameAttributes.Hitpoints_On_Kill] = GetItemBonus(GameAttributes.Hitpoints_On_Kill); - Attributes[GameAttribute.Magic_Find] = GetItemBonus(GameAttribute.Magic_Find); - Attributes[GameAttribute.Gold_Find] = GetItemBonus(GameAttribute.Gold_Find); + Attributes[GameAttributes.Magic_Find] = GetItemBonus(GameAttributes.Magic_Find); + Attributes[GameAttributes.Gold_Find] = GetItemBonus(GameAttributes.Gold_Find); - Attributes[GameAttribute.Dodge_Chance_Bonus] = GetItemBonus(GameAttribute.Dodge_Chance_Bonus); + Attributes[GameAttributes.Dodge_Chance_Bonus] = GetItemBonus(GameAttributes.Dodge_Chance_Bonus); - Attributes[GameAttribute.Block_Amount_Item_Min] = GetItemBonus(GameAttribute.Block_Amount_Item_Min); - Attributes[GameAttribute.Block_Amount_Item_Delta] = GetItemBonus(GameAttribute.Block_Amount_Item_Delta); - Attributes[GameAttribute.Block_Amount_Bonus_Percent] = GetItemBonus(GameAttribute.Block_Amount_Bonus_Percent); - Attributes[GameAttribute.Block_Chance] = GetItemBonus(GameAttribute.Block_Chance_Item_Total); + Attributes[GameAttributes.Block_Amount_Item_Min] = GetItemBonus(GameAttributes.Block_Amount_Item_Min); + Attributes[GameAttributes.Block_Amount_Item_Delta] = GetItemBonus(GameAttributes.Block_Amount_Item_Delta); + Attributes[GameAttributes.Block_Amount_Bonus_Percent] = GetItemBonus(GameAttributes.Block_Amount_Bonus_Percent); + Attributes[GameAttributes.Block_Chance] = GetItemBonus(GameAttributes.Block_Chance_Item_Total); //*/ - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Item] = GetItemBonus(GameAttribute.Hitpoints_Max_Percent_Bonus_Item); - Attributes[GameAttribute.Hitpoints_Max_Bonus] = GetItemBonus(GameAttribute.Hitpoints_Max_Bonus); - Attributes[GameAttribute.Hitpoints_Factor_Vitality] = 10f + Math.Max(Attributes[GameAttribute.Level] - 35, 0); - Attributes[GameAttribute.Hitpoints_Regen_Per_Second] = GetItemBonus(GameAttribute.Hitpoints_Regen_Per_Second) + 10f + (10f * Attributes[GameAttribute.Level]); + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Item] = GetItemBonus(GameAttributes.Hitpoints_Max_Percent_Bonus_Item); + Attributes[GameAttributes.Hitpoints_Max_Bonus] = GetItemBonus(GameAttributes.Hitpoints_Max_Bonus); + Attributes[GameAttributes.Hitpoints_Factor_Vitality] = 10f + Math.Max(Attributes[GameAttributes.Level] - 35, 0); + Attributes[GameAttributes.Hitpoints_Regen_Per_Second] = GetItemBonus(GameAttributes.Hitpoints_Regen_Per_Second) + 10f + (10f * Attributes[GameAttributes.Level]); - Attributes[GameAttribute.Core_Attributes_From_Item_Bonus_Multiplier] = 1; - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1; - Attributes[GameAttribute.Hitpoints_Max] = 276f; //+ (this.Attributes[GameAttribute.Vitality] * (10f + Math.Max(this.Attributes[GameAttribute.Level] - 35, 0))); - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Core_Attributes_From_Item_Bonus_Multiplier] = 1; + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1; + Attributes[GameAttributes.Hitpoints_Max] = 276f; //+ (this.Attributes[GameAttribute.Vitality] * (10f + Math.Max(this.Attributes[GameAttribute.Level] - 35, 0))); + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; /**/ } catch { } @@ -227,11 +224,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings hireling.GBHandle.Type = 4; hireling.GBHandle.GBID = hirelingGBID; - hireling.Attributes[GameAttribute.Pet_Creator] = player.PlayerIndex + 1; - hireling.Attributes[GameAttribute.Pet_Type] = 1; - hireling.Attributes[GameAttribute.Pet_Owner] = player.PlayerIndex + 1; - hireling.Attributes[GameAttribute.Untargetable] = false; - hireling.Attributes[GameAttribute.NPC_Is_Escorting] = true; + hireling.Attributes[GameAttributes.Pet_Creator] = player.PlayerIndex + 1; + hireling.Attributes[GameAttributes.Pet_Type] = 1; + hireling.Attributes[GameAttributes.Pet_Owner] = player.PlayerIndex + 1; + hireling.Attributes[GameAttributes.Untargetable] = false; + hireling.Attributes[GameAttributes.NPC_Is_Escorting] = true; hireling.RotationW = RotationW; hireling.RotationAxis = RotationAxis; @@ -262,21 +259,21 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings if (IsHireling || IsProxy) return; - if (player.ActiveHireling.Attributes[GameAttribute.Hireling_Class] == Attributes[GameAttribute.Hireling_Class]) + if (player.ActiveHireling.Attributes[GameAttributes.Hireling_Class] == Attributes[GameAttributes.Hireling_Class]) return; var hireling = CreateHireling(World, proxySNO, Tags); hireling.SetUpAttributes(player); hireling.GBHandle.Type = 4; hireling.GBHandle.GBID = hirelingGBID; - hireling.Attributes[GameAttribute.Is_NPC] = false; - hireling.Attributes[GameAttribute.NPC_Is_Operatable] = false; - hireling.Attributes[GameAttribute.NPC_Has_Interact_Options, 0] = false; - hireling.Attributes[GameAttribute.Buff_Visual_Effect, 0x00FFFFF] = false; + hireling.Attributes[GameAttributes.Is_NPC] = false; + hireling.Attributes[GameAttributes.NPC_Is_Operatable] = false; + hireling.Attributes[GameAttributes.NPC_Has_Interact_Options, 0] = false; + hireling.Attributes[GameAttributes.Buff_Visual_Effect, 0x00FFFFF] = false; - hireling.Attributes[GameAttribute.Pet_Creator] = player.PlayerIndex + 1; - hireling.Attributes[GameAttribute.Pet_Type] = 1; - hireling.Attributes[GameAttribute.Pet_Owner] = player.PlayerIndex + 1; + hireling.Attributes[GameAttributes.Pet_Creator] = player.PlayerIndex + 1; + hireling.Attributes[GameAttributes.Pet_Type] = 1; + hireling.Attributes[GameAttributes.Pet_Owner] = player.PlayerIndex + 1; hireling.RotationW = RotationW; hireling.RotationAxis = RotationAxis; @@ -301,7 +298,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings { float tickSeconds = 1f / 60f * (World.Game.TickCounter - _lastResourceUpdateTick); _lastResourceUpdateTick = World.Game.TickCounter; - float quantity = tickSeconds * Attributes[GameAttribute.Hitpoints_Regen_Per_Second]; + float quantity = tickSeconds * Attributes[GameAttributes.Hitpoints_Regen_Per_Second]; AddHP(quantity); } @@ -313,11 +310,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings if (quantity == 0) return; if (quantity > 0) { - if (Attributes[GameAttribute.Hitpoints_Cur] < Attributes[GameAttribute.Hitpoints_Max_Total]) + if (Attributes[GameAttributes.Hitpoints_Cur] < Attributes[GameAttributes.Hitpoints_Max_Total]) { - Attributes[GameAttribute.Hitpoints_Cur] = Math.Min( - Attributes[GameAttribute.Hitpoints_Cur] + quantity, - Attributes[GameAttribute.Hitpoints_Max_Total]); + Attributes[GameAttributes.Hitpoints_Cur] = Math.Min( + Attributes[GameAttributes.Hitpoints_Cur] + quantity, + Attributes[GameAttributes.Hitpoints_Max_Total]); Attributes.BroadcastChangedIfRevealed(); } @@ -402,7 +399,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings if (World.Game.Players.Count > 1) return false; - if (!IsHireling && ((player.ActiveHireling != null && Attributes[GameAttribute.Hireling_Class] == player.ActiveHireling.Attributes[GameAttribute.Hireling_Class])))// || (player.HirelingId != null && this.Attributes[GameAttribute.Hireling_Class] == player.HirelingId))) + if (!IsHireling && ((player.ActiveHireling != null && Attributes[GameAttributes.Hireling_Class] == player.ActiveHireling.Attributes[GameAttributes.Hireling_Class])))// || (player.HirelingId != null && this.Attributes[GameAttribute.Hireling_Class] == player.HirelingId))) return false; if (owner == null) @@ -448,12 +445,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings public void LoadInventory(Player player) { _equipment.Add(player, new Dictionary()); - var inventory_list = World.Game.GameDbSession.SessionQueryWhere(dbi => dbi.DBToon.Id == player.Toon.PersistentID && dbi.HirelingId != 0 && dbi.HirelingId == Attributes[GameAttribute.Hireling_Class]); + var inventory_list = World.Game.GameDbSession.SessionQueryWhere(dbi => dbi.DBToon.Id == player.Toon.PersistentID && dbi.HirelingId != 0 && dbi.HirelingId == Attributes[GameAttributes.Hireling_Class]); foreach (var inv_item in inventory_list) { Item item = ItemGenerator.LoadFromDB(player, inv_item); item.Owner = this; - item.Attributes[GameAttribute.Item_Equipped] = true; + item.Attributes[GameAttributes.Item_Equipped] = true; item.SetInventoryLocation(inv_item.EquipmentSlot, 0, 0); if (!_equipment[player].ContainsKey(inv_item.EquipmentSlot)) _equipment[player].Add(inv_item.EquipmentSlot, item); @@ -472,12 +469,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings item.Owner = this; item.SetInventoryLocation(slot, 0, 0); - item.DBInventory.HirelingId = Attributes[GameAttribute.Hireling_Class]; + item.DBInventory.HirelingId = Attributes[GameAttributes.Hireling_Class]; item.DBInventory.EquipmentSlot = slot; item.DBInventory.LocationX = 0; item.DBInventory.LocationY = 0; World.Game.GameDbSession.SessionUpdate(item.DBInventory); - item.Attributes[GameAttribute.Item_Equipped] = true; + item.Attributes[GameAttributes.Item_Equipped] = true; _equipment[owner].Add(slot, item); RefreshEquipment(owner); UpdateAttributes(); @@ -497,7 +494,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings World.Game.GameDbSession.SessionDelete(item.DBInventory); owner.Inventory.PickUp(item); item.Unreveal(owner); - item.Attributes[GameAttribute.Item_Equipped] = false; + item.Attributes[GameAttributes.Item_Equipped] = false; item.Reveal(owner); RefreshEquipment(owner); UpdateAttributes(); @@ -538,10 +535,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings public float GetItemBonus(GameAttributeF attributeF) { var stats = GetEquippedItems(owner) - .Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 || - item.Attributes[GameAttribute.Durability_Max] == 0); + .Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 || + item.Attributes[GameAttributes.Durability_Max] == 0); - if (attributeF == GameAttribute.Attacks_Per_Second_Item) + if (attributeF == GameAttributes.Attacks_Per_Second_Item) { return stats.Any() ? stats.Select(item => item.Attributes[attributeF]).Where(a => a > 0f).Aggregate(1f, (x, y) => x * y) @@ -552,7 +549,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings public int GetItemBonus(GameAttributeI attributeI) { - return GetEquippedItems(owner).Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 || item.Attributes[GameAttribute.Durability_Max] == 0).Sum(item => item.Attributes[attributeI]); + return GetEquippedItems(owner).Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 || item.Attributes[GameAttributes.Durability_Max] == 0).Sum(item => item.Attributes[attributeI]); } public bool GetItemBonus(GameAttributeB attributeB) @@ -562,12 +559,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings public float GetItemBonus(GameAttributeF attributeF, int attributeKey) { - return GetEquippedItems(owner).Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 || item.Attributes[GameAttribute.Durability_Max] == 0).Sum(item => item.Attributes[attributeF, attributeKey]); + return GetEquippedItems(owner).Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 || item.Attributes[GameAttributes.Durability_Max] == 0).Sum(item => item.Attributes[attributeF, attributeKey]); } public int GetItemBonus(GameAttributeI attributeI, int attributeKey) { - return GetEquippedItems(owner).Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 || item.Attributes[GameAttribute.Durability_Max] == 0).Sum(item => item.Attributes[attributeI, attributeKey]); + return GetEquippedItems(owner).Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 || item.Attributes[GameAttributes.Durability_Max] == 0).Sum(item => item.Attributes[attributeI, attributeKey]); } #endregion } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Leah.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Leah.cs index b71f21e..051f72c 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Leah.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Leah.cs @@ -4,11 +4,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings { @@ -24,20 +19,20 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings proxySNO = ActorSno._hireling_scoundrel_proxy; skillKit = 0x8AFE; hirelingGBID = StringHashHelper.HashItemName("Scoundrel"); - Attributes[GameAttribute.Hireling_Class] = 4; - var MS = Attributes[GameAttribute.Movement_Scalar]; - var RS = Attributes[GameAttribute.Run_Speed_Granted]; - var MSRP = Attributes[GameAttribute.Movement_Scalar_Reduction_Percent]; - Attributes[GameAttribute.Movement_Scalar] = 3f; - Attributes[GameAttribute.Run_Speed_Granted] = 3f; + Attributes[GameAttributes.Hireling_Class] = 4; + var MS = Attributes[GameAttributes.Movement_Scalar]; + var RS = Attributes[GameAttributes.Run_Speed_Granted]; + var MSRP = Attributes[GameAttributes.Movement_Scalar_Reduction_Percent]; + Attributes[GameAttributes.Movement_Scalar] = 3f; + Attributes[GameAttributes.Run_Speed_Granted] = 3f; //this.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; - WalkSpeed = 0.3f; Attributes[GameAttribute.Hitpoints_Max] = 9999f; - var HPM = Attributes[GameAttribute.Hitpoints_Max]; - var HPMT = Attributes[GameAttribute.Hitpoints_Max_Total]; + WalkSpeed = 0.3f; Attributes[GameAttributes.Hitpoints_Max] = 9999f; + var HPM = Attributes[GameAttributes.Hitpoints_Max]; + var HPMT = Attributes[GameAttributes.Hitpoints_Max_Total]; - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1; + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1; - Attributes[GameAttribute.Hitpoints_Max] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Max] = Attributes[GameAttributes.Hitpoints_Max_Total]; } @@ -117,7 +112,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings } } }); - Attributes[GameAttribute.Conversation_Icon, 0] = 1; + Attributes[GameAttributes.Conversation_Icon, 0] = 1; Attributes.BroadcastChangedIfRevealed(); return true; diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/MalthaelHireling.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/MalthaelHireling.cs index d411673..b225282 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/MalthaelHireling.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/MalthaelHireling.cs @@ -19,9 +19,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings proxySNO = ActorSno._hireling_templar_proxy; skillKit = 484941; hirelingGBID = StringHashHelper.HashItemName("Templar"); - Attributes[GameAttribute.Hireling_Class] = 0; - Attributes[GameAttribute.TeamID] = 2; - Attributes[GameAttribute.Team_Override] = 2; + Attributes[GameAttributes.Hireling_Class] = 0; + Attributes[GameAttributes.TeamID] = 2; + Attributes[GameAttributes.Team_Override] = 2; } public override Hireling CreateHireling(MapSystem.World world, ActorSno sno, TagMap tags) @@ -37,8 +37,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 102057: case 101969: player.HirelingInfo[3].Skill1SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 102057 ? 101969 : 102057)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 102057 ? 101969 : 102057)] = 0; Attributes.BroadcastChangedIfRevealed(); dbhireling.Skill1SNOId = SkillSNOId; @@ -47,8 +47,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 102133: case 101461: player.HirelingInfo[3].Skill2SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 102133 ? 101461 : 102133)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 102133 ? 101461 : 102133)] = 0; Attributes.BroadcastChangedIfRevealed(); dbhireling.Skill2SNOId = SkillSNOId; @@ -57,8 +57,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 101990: case 220872: player.HirelingInfo[3].Skill3SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 101990 ? 220872 : 101990)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 101990 ? 220872 : 101990)] = 0; Attributes.BroadcastChangedIfRevealed(); dbhireling.Skill3SNOId = SkillSNOId; @@ -67,8 +67,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 101425: case 201524: player.HirelingInfo[3].Skill4SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 101425 ? 201524 : 101425)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 101425 ? 201524 : 101425)] = 0; Attributes.BroadcastChangedIfRevealed(); dbhireling.Skill4SNOId = SkillSNOId; @@ -93,14 +93,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings player.HirelingInfo[3].Skill3SNOId = -1; player.HirelingInfo[3].Skill4SNOId = -1; - Attributes[GameAttribute.Skill, 102057] = 0; - Attributes[GameAttribute.Skill, 101969] = 0; - Attributes[GameAttribute.Skill, 102133] = 0; - Attributes[GameAttribute.Skill, 101461] = 0; - Attributes[GameAttribute.Skill, 101990] = 0; - Attributes[GameAttribute.Skill, 220872] = 0; - Attributes[GameAttribute.Skill, 101425] = 0; - Attributes[GameAttribute.Skill, 201524] = 0; + Attributes[GameAttributes.Skill, 102057] = 0; + Attributes[GameAttributes.Skill, 101969] = 0; + Attributes[GameAttributes.Skill, 102133] = 0; + Attributes[GameAttributes.Skill, 101461] = 0; + Attributes[GameAttributes.Skill, 101990] = 0; + Attributes[GameAttributes.Skill, 220872] = 0; + Attributes[GameAttributes.Skill, 101425] = 0; + Attributes[GameAttributes.Skill, 201524] = 0; Attributes.SendChangedMessage(player.InGameClient); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Scoundrel.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Scoundrel.cs index 194740c..1129dd1 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Scoundrel.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Scoundrel.cs @@ -19,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings proxySNO = ActorSno._hireling_scoundrel_proxy; skillKit = 484937; hirelingGBID = StringHashHelper.HashItemName("Scoundrel"); - Attributes[GameAttribute.Hireling_Class] = 2; + Attributes[GameAttributes.Hireling_Class] = 2; } public override Hireling CreateHireling(MapSystem.World world, ActorSno sno, TagMap tags) @@ -35,8 +35,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 95675: case 30460: player.HirelingInfo[2].Skill1SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 95675 ? 30460 : 95675)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 95675 ? 30460 : 95675)] = 0; Attributes.SendChangedMessage(player.InGameClient); dbhireling.Skill1SNOId = SkillSNOId; @@ -45,8 +45,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 97436: case 30464: player.HirelingInfo[2].Skill2SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 97436 ? 30464 : 97436)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 97436 ? 30464 : 97436)] = 0; Attributes.SendChangedMessage(player.InGameClient); dbhireling.Skill2SNOId = SkillSNOId; @@ -55,8 +55,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 95690: case 30458: player.HirelingInfo[2].Skill3SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 95690 ? 30458 : 95690)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 95690 ? 30458 : 95690)] = 0; Attributes.SendChangedMessage(player.InGameClient); dbhireling.Skill3SNOId = SkillSNOId; @@ -65,8 +65,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 200169: case 30454: player.HirelingInfo[2].Skill4SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 200169 ? 30454 : 200169)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 200169 ? 30454 : 200169)] = 0; Attributes.SendChangedMessage(player.InGameClient); dbhireling.Skill4SNOId = SkillSNOId; @@ -91,14 +91,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings player.HirelingInfo[2].Skill3SNOId = -1; player.HirelingInfo[2].Skill4SNOId = -1; - Attributes[GameAttribute.Skill, 95675] = 0; - Attributes[GameAttribute.Skill, 30460] = 0; - Attributes[GameAttribute.Skill, 97436] = 0; - Attributes[GameAttribute.Skill, 30464] = 0; - Attributes[GameAttribute.Skill, 95690] = 0; - Attributes[GameAttribute.Skill, 30458] = 0; - Attributes[GameAttribute.Skill, 200169] = 0; - Attributes[GameAttribute.Skill, 30454] = 0; + Attributes[GameAttributes.Skill, 95675] = 0; + Attributes[GameAttributes.Skill, 30460] = 0; + Attributes[GameAttributes.Skill, 97436] = 0; + Attributes[GameAttributes.Skill, 30464] = 0; + Attributes[GameAttributes.Skill, 95690] = 0; + Attributes[GameAttributes.Skill, 30458] = 0; + Attributes[GameAttributes.Skill, 200169] = 0; + Attributes[GameAttributes.Skill, 30454] = 0; Attributes.SendChangedMessage(player.InGameClient); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Templar.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Templar.cs index 75c3702..8df3566 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Templar.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Hirelings/Templar.cs @@ -19,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings proxySNO = ActorSno._hireling_templar_proxy; skillKit = 484941; hirelingGBID = StringHashHelper.HashItemName("Templar"); - Attributes[GameAttribute.Hireling_Class] = 1; + Attributes[GameAttributes.Hireling_Class] = 1; } public override Hireling CreateHireling(MapSystem.World world, ActorSno sno, TagMap tags) @@ -35,8 +35,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 1747: case 93938: player.HirelingInfo[1].Skill1SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 1747 ? 93938 : 1747)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 1747 ? 93938 : 1747)] = 0; Attributes.SendChangedMessage(player.InGameClient); dbhireling.Skill1SNOId = SkillSNOId; @@ -45,8 +45,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 30357: case 93901: player.HirelingInfo[1].Skill2SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 30357 ? 93901 : 30357)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 30357 ? 93901 : 30357)] = 0; Attributes.SendChangedMessage(player.InGameClient); dbhireling.Skill2SNOId = SkillSNOId; @@ -55,8 +55,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 30360: case 93888: player.HirelingInfo[1].Skill3SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 30360 ? 93888 : 30360)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 30360 ? 93888 : 30360)] = 0; Attributes.SendChangedMessage(player.InGameClient); dbhireling.Skill3SNOId = SkillSNOId; @@ -65,8 +65,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings case 30356: case 30359: player.HirelingInfo[1].Skill4SNOId = SkillSNOId; - Attributes[GameAttribute.Skill, SkillSNOId] = 1; - Attributes[GameAttribute.Skill, (SkillSNOId == 30356 ? 30359 : 30356)] = 0; + Attributes[GameAttributes.Skill, SkillSNOId] = 1; + Attributes[GameAttributes.Skill, (SkillSNOId == 30356 ? 30359 : 30356)] = 0; Attributes.SendChangedMessage(player.InGameClient); dbhireling.Skill4SNOId = SkillSNOId; @@ -91,14 +91,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings player.HirelingInfo[1].Skill3SNOId = -1; player.HirelingInfo[1].Skill4SNOId = -1; - Attributes[GameAttribute.Skill, 1747] = 0; - Attributes[GameAttribute.Skill, 93938] = 0; - Attributes[GameAttribute.Skill, 30357] = 0; - Attributes[GameAttribute.Skill, 93901] = 0; - Attributes[GameAttribute.Skill, 30360] = 0; - Attributes[GameAttribute.Skill, 93888] = 0; - Attributes[GameAttribute.Skill, 30356] = 0; - Attributes[GameAttribute.Skill, 30359] = 0; + Attributes[GameAttributes.Skill, 1747] = 0; + Attributes[GameAttributes.Skill, 93938] = 0; + Attributes[GameAttributes.Skill, 30357] = 0; + Attributes[GameAttributes.Skill, 93901] = 0; + Attributes[GameAttributes.Skill, 30360] = 0; + Attributes[GameAttributes.Skill, 93888] = 0; + Attributes[GameAttributes.Skill, 30356] = 0; + Attributes[GameAttributes.Skill, 30359] = 0; Attributes.SendChangedMessage(player.InGameClient); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/LegendaryChest.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/LegendaryChest.cs index 44aff25..a0eed33 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/LegendaryChest.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/LegendaryChest.cs @@ -8,12 +8,7 @@ using DiIiS_NA.GameServer.GSSystem.ItemsSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Quest; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Text; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using DiIiS_NA.GameServer.MessageSystem.Message.Fields; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -37,7 +32,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public override void OnTargeted(Player player, TargetMessage message) { - if (Attributes[GameAttribute.Disabled]) return; + if (Attributes[GameAttributes.Disabled]) return; int chance = World.Game.IsHardcore ? 99 : 25; //S4 special /* diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/LootContainer.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/LootContainer.cs index 701ecd7..3962739 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/LootContainer.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/LootContainer.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; +using System.Linq; using DiIiS_NA.Core.Helpers.Math; using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; @@ -9,7 +7,6 @@ using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Quest; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; @@ -24,7 +21,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public LootContainer(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - if (SNO == ActorSno._a3dunrmpt_interactives_signal_fire_a_prop) Attributes[GameAttribute.MinimapActive] = true; + if (SNO == ActorSno._a3dunrmpt_interactives_signal_fire_a_prop) Attributes[GameAttributes.MinimapActive] = true; if (SNO.IsChest() || SNO.IsCorpse()) haveDrop = true; @@ -52,7 +49,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations if (!base.Reveal(player)) return false; - if (Attributes[GameAttribute.Disabled]) + if (Attributes[GameAttributes.Disabled]) { player.InGameClient.SendMessage(new SetIdleAnimationMessage { @@ -70,7 +67,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations if (SNO == ActorSno._p4_setdung_totem_cru_thorns) return; - if (Attributes[GameAttribute.Disabled]) return; + if (Attributes[GameAttributes.Disabled]) return; base.OnTargeted(player, message); @@ -116,7 +113,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations World.SpawnRandomGem(this, plr); if (seed < 0.10f) World.SpawnRandomPotion(this, plr); - if (seed < (rate * (1f + plr.Attributes[GameAttribute.Magic_Find]))) + if (seed < (rate * (1f + plr.Attributes[GameAttributes.Magic_Find]))) { var lootQuality = World.Game.IsHardcore ? LootManager.GetSeasonalLootQuality((int)Quality, World.Game.Difficulty) : LootManager.GetLootQuality((int)Quality, World.Game.Difficulty); World.SpawnRandomEquip(plr, plr, lootQuality); @@ -160,12 +157,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations AnimationSNO = AnimationSetKeys.Open.ID }, this); - Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; + Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; //this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID); - Attributes[GameAttribute.Chest_Open, 0xFFFFFF] = true; + Attributes[GameAttributes.Chest_Open, 0xFFFFFF] = true; Attributes.BroadcastChangedIfRevealed(); - Attributes[GameAttribute.Disabled] = true; + Attributes[GameAttributes.Disabled] = true; if (SNO == ActorSno._trdun_cath_chandelier_trap_switch2) { diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/AncientBarbarian.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/AncientBarbarian.cs index 6bb903b..4693408 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/AncientBarbarian.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/AncientBarbarian.cs @@ -27,13 +27,13 @@ namespace DiIiS_NA.D3_GameServer.GSSystem.ActorSystem.Implementations.Minions brain.AddPresetPower(power); } SetBrain(brain); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 if (this.Master != null) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/AvatarsOfTheOrder.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/AvatarsOfTheOrder.cs index 56489ab..be18b00 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/AvatarsOfTheOrder.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/AvatarsOfTheOrder.cs @@ -1,9 +1,7 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PowerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.D3_GameServer.Core.Types.SNO; @@ -19,15 +17,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions DamageCoefficient = 4f; //Useless otherwise SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; - Attributes[GameAttribute.Hitpoints_Max] = context.User.Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max]; + Attributes[GameAttributes.Hitpoints_Max] = context.User.Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max]; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total] * damageMult; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total] * damageMult; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total] * damageMult; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total] * damageMult; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Pet_Type] = 0x8; LifeTime = lifeTime; } @@ -44,15 +42,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions SetBrain(new MinionBrain(this)); (Brain as MinionBrain).AddPresetPower(369807); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; - Attributes[GameAttribute.Hitpoints_Max] = context.User.Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max]; + Attributes[GameAttributes.Hitpoints_Max] = context.User.Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max]; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total] * damageMult; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total] * damageMult; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total] * damageMult; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total] * damageMult; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Pet_Type] = 0x8; LifeTime = lifeTime; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CompanionMinion.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CompanionMinion.cs index 4e7bf41..dd033a5 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CompanionMinion.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CompanionMinion.cs @@ -2,8 +2,6 @@ using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PowerSystem; -using DiIiS_NA.GameServer.GSSystem.TickerSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; using System.Collections.Generic; using DiIiS_NA.D3_GameServer.Core.Types.SNO; @@ -30,14 +28,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions : base(world, CompanionSNO, context.User, null) { Scale = 1.2f; - if (context.User.Attributes[GameAttribute.Rune_B, 0x000592ff] > 0) Scale = 2f; //Boar - if (context.User.Attributes[GameAttribute.Rune_C, 0x000592ff] > 0) Scale = 2f; //Wolf + if (context.User.Attributes[GameAttributes.Rune_B, 0x000592ff] > 0) Scale = 2f; //Boar + if (context.User.Attributes[GameAttributes.Rune_C, 0x000592ff] > 0) Scale = 2f; //Wolf //TODO: get a proper value for this. WalkSpeed *= 5; DamageCoefficient = context.ScriptFormula(0); - Attributes[GameAttribute.Invulnerable] = true; - Attributes[GameAttribute.Is_Helper] = true; - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Invulnerable] = true; + Attributes[GameAttributes.Is_Helper] = true; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; if (CompanionSNO == ActorSno._dh_companion_ferret) SetBrain(new LooterBrain(this, false)); else @@ -45,23 +43,23 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions SetBrain(new MinionBrain(this)); (Brain as MinionBrain).AddPresetPower(169081); //melee_instant - if (context.User.Attributes[GameAttribute.Rune_A, 0x000592ff] > 0) //Spider + if (context.User.Attributes[GameAttributes.Rune_A, 0x000592ff] > 0) //Spider (Brain as MinionBrain).AddPresetPower(133887); //cleave - if (context.User.Attributes[GameAttribute.Rune_B, 0x000592ff] > 0) //Boar + if (context.User.Attributes[GameAttributes.Rune_B, 0x000592ff] > 0) //Boar (Brain as MinionBrain).AddPresetPower(133887); //cleave - if (context.User.Attributes[GameAttribute.Rune_C, 0x000592ff] > 0) //Wolf + if (context.User.Attributes[GameAttributes.Rune_C, 0x000592ff] > 0) //Wolf (Brain as MinionBrain).AddPresetPower(133887); //cleave //(Brain as MinionBrain).AddPresetPower(133887); //ChargeAttack } - Attributes[GameAttribute.Attacks_Per_Second] = context.User.Attributes[GameAttribute.Attacks_Per_Second_Total]; + Attributes[GameAttributes.Attacks_Per_Second] = context.User.Attributes[GameAttributes.Attacks_Per_Second_Total]; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(0) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(0) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(0) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(0) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CorpseSpider.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CorpseSpider.cs index 48434c9..0ea610b 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CorpseSpider.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CorpseSpider.cs @@ -1,9 +1,7 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PowerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.D3_GameServer.Core.Types.SNO; @@ -21,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 5; DamageCoefficient = context.ScriptFormula(16) * 2f; SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; (Brain as MinionBrain).AddPresetPower(30592); //melee_instant //(Brain as MinionBrain).AddPresetPower(30005); //AINearby if (context.Rune_C > 0) @@ -29,12 +27,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. //Attributes[GameAttribute.Hitpoints_Max] = 20f; //Attributes[GameAttribute.Hitpoints_Cur] = 20f; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 LifeTime = TickTimer.WaitSeconds(world.Game, 5f); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CorpseSpiderQueen.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CorpseSpiderQueen.cs index 6238cbc..ff198e5 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CorpseSpiderQueen.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/CorpseSpiderQueen.cs @@ -1,5 +1,4 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PowerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; @@ -24,7 +23,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 5; DamageCoefficient = context.ScriptFormula(16) * 2f; SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; (Brain as MinionBrain).AddPresetPower(30592); //melee_instant //(Brain as MinionBrain).AddPresetPower(30005); //AINearby if (context.Rune_C > 0) @@ -35,10 +34,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions //Attributes[GameAttribute.Hitpoints_Cur] = 20f; //Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(16) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 if (Master != null) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyHunter.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyHunter.cs index 3bb4a02..b0a0504 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyHunter.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyHunter.cs @@ -1,11 +1,8 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PowerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; -using System.Collections.Generic; using DiIiS_NA.D3_GameServer.Core.Types.SNO; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions @@ -21,17 +18,17 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 5; DamageCoefficient = context.ScriptFormula(14) * 2f; SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; (Brain as MinionBrain).AddPresetPower(119166); //fetisharmy_hunter.pow //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. //Attributes[GameAttribute.Hitpoints_Max] = 20f; //Attributes[GameAttribute.Hitpoints_Cur] = 20f; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 LifeTime = TickTimer.WaitSeconds(world.Game, 20f); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyMelee.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyMelee.cs index 17676d1..26a8c2d 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyMelee.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyMelee.cs @@ -18,16 +18,16 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 5; DamageCoefficient = context.ScriptFormula(22) * 2f; SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. //Attributes[GameAttribute.Hitpoints_Max] = 20f; //Attributes[GameAttribute.Hitpoints_Cur] = 20f; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(22) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(22) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(22) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(22) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 LifeTime = TickTimer.WaitSeconds(world.Game, 20f); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyShaman.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyShaman.cs index 840859e..07ff91d 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyShaman.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/FetishArmyShaman.cs @@ -1,11 +1,8 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PowerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; -using System.Collections.Generic; using DiIiS_NA.D3_GameServer.Core.Types.SNO; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions @@ -21,17 +18,17 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 5; DamageCoefficient = context.ScriptFormula(11) * 2f; SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; (Brain as MinionBrain).AddPresetPower(118442); //fetisharmy_shaman.pow //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. //Attributes[GameAttribute.Hitpoints_Max] = 20f; //Attributes[GameAttribute.Hitpoints_Cur] = 20f; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 LifeTime = TickTimer.WaitSeconds(world.Game, 20f); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/GargantuanMinion.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/GargantuanMinion.cs index 17ec68b..aeb00f5 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/GargantuanMinion.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/GargantuanMinion.cs @@ -1,8 +1,6 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PowerSystem; -using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; using System.Collections.Generic; @@ -20,7 +18,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 5; DamageCoefficient = context.ScriptFormula(24) * 2f; SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; //(Brain as MinionBrain).AddPresetPower(30005); //(Brain as MinionBrain).AddPresetPower(30001); (Brain as MinionBrain).AddPresetPower(30592); @@ -29,20 +27,20 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions (Brain as MinionBrain).AddPresetPower(121942); // Witchdoctor_Gargantuan_Cleave if ((context.User as Player).SkillSet.HasPassive(208563)) //ZombieHandler (wd) { - Attributes[GameAttribute.Hitpoints_Max] *= 1.2f; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max]; + Attributes[GameAttributes.Hitpoints_Max] *= 1.2f; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max]; } - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(24) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(24) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(24) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(24) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; if ((context.User as Player).SkillSet.HasPassive(340909)) //MidnightFeast (wd) { - Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 1.5f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 1.5f; } - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 if (Master != null) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/Golems.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/Golems.cs index 3e55d37..b7c672a 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/Golems.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/Golems.cs @@ -1,16 +1,8 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; -using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; -using DiIiS_NA.GameServer.GSSystem.PowerSystem; -using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions { @@ -30,12 +22,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 3; SetBrain(new MinionBrain(this)); //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. - Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Attributes[GameAttribute.Damage_Weapon_Min, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Attributes[GameAttributes.Damage_Weapon_Min, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; } @@ -50,12 +42,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 3; SetBrain(new MinionBrain(this)); //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. - Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; //SNOSummons } @@ -70,12 +62,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 3; SetBrain(new MinionBrain(this)); //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. - Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; } @@ -90,12 +82,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 3; SetBrain(new MinionBrain(this)); //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. - Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; } } @@ -109,12 +101,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 3; SetBrain(new MinionBrain(this)); //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. - Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; } @@ -129,12 +121,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 3; SetBrain(new MinionBrain(this)); //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. - Attributes[GameAttribute.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Hitpoints_Max] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Hitpoints_Cur] = 3000f * (master as Player).Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f * (master as Player).Toon.Level; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 3 * master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * (master as Player).Toon.Level; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/HexMinion.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/HexMinion.cs index 8fed7c1..e9eb2a3 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/HexMinion.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/HexMinion.cs @@ -1,11 +1,8 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PowerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; -using System.Collections.Generic; using DiIiS_NA.D3_GameServer.Core.Types.SNO; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions @@ -20,7 +17,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 5; SetBrain(new MinionBrain(this)); DamageCoefficient = 1f * 2f; - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; (Brain as MinionBrain).AddPresetPower(196974); //chicken_walk.pow (Brain as MinionBrain).AddPresetPower(188442); //explode.pow (Brain as MinionBrain).AddPresetPower(107301); //Fetish.pow @@ -28,12 +25,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions //Attributes[GameAttribute.Hitpoints_Max] = 5f; //Attributes[GameAttribute.Hitpoints_Cur] = 5f; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 7f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 7f; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 LifeTime = TickTimer.WaitSeconds(world.Game, 12f); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/LooterPetAnniversary.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/LooterPetAnniversary.cs index fac1d46..a13a17f 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/LooterPetAnniversary.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/LooterPetAnniversary.cs @@ -1,11 +1,7 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; -using DiIiS_NA.GameServer.GSSystem.PowerSystem; -using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; -using System.Collections.Generic; using DiIiS_NA.D3_GameServer.Core.Types.SNO; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions @@ -21,12 +17,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 5; CollFlags = 0; DamageCoefficient = 0; - Attributes[GameAttribute.Invulnerable] = true; - Attributes[GameAttribute.Is_Helper] = true; + Attributes[GameAttributes.Invulnerable] = true; + Attributes[GameAttributes.Is_Helper] = true; SetBrain(new LooterBrain(this, true)); - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/MirrorImageMinion.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/MirrorImageMinion.cs index a4464ca..5526b2a 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/MirrorImageMinion.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/MirrorImageMinion.cs @@ -20,16 +20,16 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 5; DamageCoefficient = context.ScriptFormula(11); SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. //Attributes[GameAttribute.Hitpoints_Max] = 20f; //Attributes[GameAttribute.Hitpoints_Cur] = 20f; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(11) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 LifeTime = TickTimer.WaitSeconds(world.Game, lifetime); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/MysticAllyMinion.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/MysticAllyMinion.cs index 2ed0dde..4f0f134 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/MysticAllyMinion.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/MysticAllyMinion.cs @@ -1,11 +1,7 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PowerSystem; -using DiIiS_NA.GameServer.GSSystem.TickerSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; -using System.Collections.Generic; using DiIiS_NA.D3_GameServer.Core.Types.SNO; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions @@ -22,7 +18,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 5; DamageCoefficient = 5f; SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = 0x00058676; + Attributes[GameAttributes.Summoned_By_SNO] = 0x00058676; (Brain as MinionBrain).AddPresetPower(169081); //melee_instant @@ -35,14 +31,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions (Brain as MinionBrain).AddPresetPower(169715); //Earth Ally -> Boulder*/ //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. - Attributes[GameAttribute.Hitpoints_Max] = 5f * context.User.Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Attacks_Per_Second] = context.User.Attributes[GameAttribute.Attacks_Per_Second_Total]; + Attributes[GameAttributes.Hitpoints_Max] = 5f * context.User.Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Attacks_Per_Second] = context.User.Attributes[GameAttributes.Attacks_Per_Second_Total]; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 2f * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 2f * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 2f * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 2f * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/NecromancerSkeleton_A.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/NecromancerSkeleton_A.cs index ba9bda1..0437e5b 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/NecromancerSkeleton_A.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/NecromancerSkeleton_A.cs @@ -1,15 +1,8 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; -using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.PowerSystem; -using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions { @@ -31,24 +24,24 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions DamageCoefficient = context.ScriptFormula(14) * 2f; SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Item] = 1; - Attributes[GameAttribute.Hitpoints_Max_Bonus] = 1; - Attributes[GameAttribute.Hitpoints_Factor_Vitality] = 1f; - Attributes[GameAttribute.Hitpoints_Regen_Per_Second] = 0; + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Item] = 1; + Attributes[GameAttributes.Hitpoints_Max_Bonus] = 1; + Attributes[GameAttributes.Hitpoints_Factor_Vitality] = 1f; + Attributes[GameAttributes.Hitpoints_Regen_Per_Second] = 0; - Attributes[GameAttribute.Core_Attributes_From_Item_Bonus_Multiplier] = 1; - Attributes[GameAttribute.Hitpoints_Max] = 20f * ((Player) Master).Toon.Level; - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Core_Attributes_From_Item_Bonus_Multiplier] = 1; + Attributes[GameAttributes.Hitpoints_Max] = 20f * ((Player) Master).Toon.Level; + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Summoned_By_SNO] = 453801; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Summoned_By_SNO] = 453801; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 0.5f * context!.User!.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 0.5f * context!.User!.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 0.5f * context!.User!.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 0.5f * context!.User!.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 LifeTime = null;// TickTimer.WaitSeconds(world.Game, 6f); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/SentryMinion.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/SentryMinion.cs index 6c078a0..1df9e42 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/SentryMinion.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/SentryMinion.cs @@ -1,5 +1,4 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PowerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; @@ -37,12 +36,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. //Attributes[GameAttribute.Hitpoints_Max] = 20f; //Attributes[GameAttribute.Hitpoints_Cur] = 20f; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = context.ScriptFormula(2) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(2) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = context.ScriptFormula(2) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(2) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 if (Master != null) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/SkeletalMage.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/SkeletalMage.cs index 370e539..3b58b10 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/SkeletalMage.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/SkeletalMage.cs @@ -4,11 +4,6 @@ using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PowerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions { @@ -26,21 +21,21 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions Rune_Flesh = true; SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; //(Brain as MinionBrain).AddPresetPower(119166); - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; DamageCoefficient = context.ScriptFormula(14) * 2f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = (context.ScriptFormula(14) * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]); + Attributes[GameAttributes.Damage_Weapon_Min, 0] = (context.ScriptFormula(14) * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]); //(UsedEssense * 3f) if (context.Rune_B > 0) { UsedEssense = (context as PowerSystem.Implementations.SummonSkeletalMage).Count; - Attributes[GameAttribute.Damage_Weapon_Min, 0] += (Attributes[GameAttribute.Damage_Weapon_Min, 0] / 100 * 3) * UsedEssense; + Attributes[GameAttributes.Damage_Weapon_Min, 0] += (Attributes[GameAttributes.Damage_Weapon_Min, 0] / 100 * 3) * UsedEssense; } - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = context.ScriptFormula(14) * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 if (context.Rune_C > 0) LifeTime = TickTimer.WaitSeconds(world.Game, 8f); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/WallCreeper.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/WallCreeper.cs index 21eac17..ff48c89 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/WallCreeper.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/WallCreeper.cs @@ -1,11 +1,8 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.PowerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; -using System.Collections.Generic; using DiIiS_NA.D3_GameServer.Core.Types.SNO; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions @@ -22,16 +19,16 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 2; DamageCoefficient = 2f * 2f; SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = context.PowerSNO; + Attributes[GameAttributes.Summoned_By_SNO] = context.PowerSNO; //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. //Attributes[GameAttribute.Hitpoints_Max] = 20f; //Attributes[GameAttribute.Hitpoints_Cur] = 20f; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 2f * context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 2f * context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 2f * context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 2f * context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 LifeTime = TickTimer.WaitSeconds(world.Game, 5f); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/ZombieDog.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/ZombieDog.cs index 67fe5f0..4a32a11 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/ZombieDog.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Minions/ZombieDog.cs @@ -1,11 +1,7 @@ -using System.Linq; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; -using DiIiS_NA.GameServer.GSSystem.PowerSystem; -using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; -using System.Collections.Generic; using DiIiS_NA.D3_GameServer.Core.Types.SNO; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions @@ -22,10 +18,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions WalkSpeed *= 5; DamageCoefficient = mul * 2f; SetBrain(new MinionBrain(this)); - Attributes[GameAttribute.Summoned_By_SNO] = 102573; + Attributes[GameAttributes.Summoned_By_SNO] = 102573; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = master.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = master.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; //TODO: These values should most likely scale, but we don't know how yet, so just temporary values. @@ -33,22 +29,22 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions //Attributes[GameAttribute.Hitpoints_Cur] = 20f; if ((master as Player).SkillSet.HasPassive(208563)) //ZombieHandler (wd) { - Attributes[GameAttribute.Hitpoints_Max] *= 1.2f; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max]; + Attributes[GameAttributes.Hitpoints_Max] *= 1.2f; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max]; } - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = master.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0] * mul; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] * mul; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = master.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0] * mul; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] * mul; if ((master as Player).SkillSet.HasPassive(340909)) //MidnightFeast (wd) { - Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 1.5f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 1.5f; } - Attributes[GameAttribute.Pet_Type] = 0x8; + Attributes[GameAttributes.Pet_Type] = 0x8; //Pet_Owner and Pet_Creator seems to be 0 - master.Attributes[GameAttribute.Free_Cast, SkillsSystem.Skills.WitchDoctor.Support.Sacrifice] = 1; + master.Attributes[GameAttributes.Free_Cast, SkillsSystem.Skills.WitchDoctor.Support.Sacrifice] = 1; master.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Bosses.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Bosses.cs index 7907a58..465ef36 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Bosses.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Bosses.cs @@ -1,11 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using DiIiS_NA.D3_GameServer.Core.Types.SNO; +using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.MessageSystem; @@ -18,13 +12,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public Unique_CaptainDaltyn(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; - Attributes[GameAttribute.Immune_To_Charm] = true; - Attributes[GameAttribute.using_Bossbar] = true; - Attributes[GameAttribute.InBossEncounter] = true; + Attributes[GameAttributes.MinimapActive] = true; + Attributes[GameAttributes.Immune_To_Charm] = true; + Attributes[GameAttributes.using_Bossbar] = true; + Attributes[GameAttributes.InBossEncounter] = true; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.TeamID] = 10; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.TeamID] = 10; WalkSpeed = 0.2f; diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Monsters.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Monsters.cs index 0a99c0c..52cd839 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Monsters.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Monsters.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using DiIiS_NA.D3_GameServer.Core.Types.SNO; +using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.MapSystem; @@ -54,9 +49,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public DarkCultists(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.3f; } } @@ -66,9 +61,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public DarkCultistsTownAttackMelee(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.3f; } } @@ -84,9 +79,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters : base(world, sno, tags) { (Brain as MonsterBrain).AddPresetPower(30570); - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 10f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 10f; WalkSpeed = 0.15f; } } @@ -98,9 +93,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters { (Brain as MonsterBrain).AddPresetPower(30547); - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.15f; } } @@ -112,9 +107,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters { (Brain as MonsterBrain).AddPresetPower(30570); (Brain as MonsterBrain).AddPresetPower(30547); - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.15f; } } @@ -126,9 +121,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public Shark(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.3f; } } @@ -146,9 +141,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public Lacuni(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.3f; } } @@ -165,9 +160,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public Fallens(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.3f; } } @@ -186,8 +181,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Movement_Scalar] = 0f; - Attributes[GameAttribute.Run_Speed_Granted] = 0f; + Attributes[GameAttributes.Movement_Scalar] = 0f; + Attributes[GameAttributes.Run_Speed_Granted] = 0f; Spawner = true; } @@ -511,9 +506,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public TriuneCultist(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.3f; } } @@ -532,9 +527,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public TombGuardian(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; (Brain as MonsterBrain).AddPresetPower(30503); (Brain as MonsterBrain).AddPresetPower(30543); //Summon Skeletons } @@ -661,8 +656,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Movement_Scalar] = 0f; - Attributes[GameAttribute.Run_Speed_Granted] = 0f; + Attributes[GameAttributes.Movement_Scalar] = 0f; + Attributes[GameAttributes.Run_Speed_Granted] = 0f; Spawner = true; } @@ -679,8 +674,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters (Brain as MonsterBrain).PresetPowers.Clear(); (Brain as MonsterBrain).AddPresetPower(117580); - Attributes[GameAttribute.Movement_Scalar] = 0f; - Attributes[GameAttribute.Run_Speed_Granted] = 0f; + Attributes[GameAttributes.Movement_Scalar] = 0f; + Attributes[GameAttributes.Run_Speed_Granted] = 0f; WalkSpeed = 0f; Spawner = true; } @@ -771,9 +766,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public GoatmanMelee(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.2f; } } @@ -808,9 +803,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public TriuneWizard(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.35f; (Brain as MonsterBrain).AddPresetPower(99077); } @@ -829,9 +824,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public TriuneBerserker(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.35f; (Brain as MonsterBrain).AddPresetPower(99077); } @@ -1099,9 +1094,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public Wrath(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.3f; } } @@ -1113,9 +1108,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters public Spider_Elemental_Cold_tesla_A(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; WalkSpeed = 0.3f; } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Traps.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Traps.cs index cec9271..0a08dba 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Traps.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Monsters/Traps.cs @@ -3,11 +3,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters { @@ -22,14 +17,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Monsters CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Movement_Scalar] = 0f; - Attributes[GameAttribute.Run_Speed_Granted] = 0f; + Attributes[GameAttributes.Movement_Scalar] = 0f; + Attributes[GameAttributes.Run_Speed_Granted] = 0f; Spawner = true; - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; (Brain as MonsterBrain).RemovePresetPower(30592); //(Brain as MonsterBrain).AddPresetPower(96925); (Brain as MonsterBrain).AddPresetPower(223284); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/ArrowGuardian.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/ArrowGuardian.cs index 681b040..0bca8ad 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/ArrowGuardian.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/ArrowGuardian.cs @@ -23,11 +23,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data; var monsterData = (Monster.Target as MonsterFF); - Attributes[GameAttribute.Hitpoints_Max] = 99999; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f; + Attributes[GameAttributes.Hitpoints_Max] = 99999; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f; WalkSpeed = 0f; // TODO: this is probably multiplied by something erekose the 0.3 is because he is way too fast otherwise } @@ -46,7 +46,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem if (!base.Reveal(player)) return false; - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; return true; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/CR_Nephalem.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/CR_Nephalem.cs index 0a68d7f..f7e223f 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/CR_Nephalem.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/CR_Nephalem.cs @@ -3,11 +3,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -22,7 +17,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations Conversations.Add(new Interactions.ConversationInteraction(471076)); Field7 = 1; - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; } public override void OnTargeted(Player player, TargetMessage message) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Cain.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Cain.cs index 86ddb59..818423b 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Cain.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Cain.cs @@ -1,9 +1,5 @@ -using System; -using System.Linq; -using DiIiS_NA.GameServer.GSSystem.MapSystem; +using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.D3_GameServer.Core.Types.SNO; @@ -15,7 +11,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public Cain(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; } protected override void ReadTags() diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/CapitanRumford.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/CapitanRumford.cs index 3a87012..d47245b 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/CapitanRumford.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/CapitanRumford.cs @@ -37,12 +37,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data; var monsterData = (Monster.Target as MonsterFF); - Attributes[GameAttribute.Level] = 1; - Attributes[GameAttribute.Hitpoints_Max] = 100000; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f; + Attributes[GameAttributes.Level] = 1; + Attributes[GameAttributes.Hitpoints_Max] = 100000; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f; WalkSpeed = 0.3f * monsterData.AttributeModifiers[129]; // TODO: this is probably multiplied by something erekose the 0.3 is because he is way too fast otherwise } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Fate.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Fate.cs index cd2bdfb..7144f26 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Fate.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Fate.cs @@ -11,7 +11,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { Field7 = 1; - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/GhostOnSpire.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/GhostOnSpire.cs index 0a073d3..c2e7657 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/GhostOnSpire.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/GhostOnSpire.cs @@ -19,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { Field7 = 1; - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; Attributes.BroadcastChangedIfRevealed(); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/HirelingNPC.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/HirelingNPC.cs index de7965a..1927088 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/HirelingNPC.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/HirelingNPC.cs @@ -22,12 +22,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data; var monsterData = (Monster.Target as MonsterFF); - Attributes[GameAttribute.Level] = 1; - Attributes[GameAttribute.Hitpoints_Max] = 100000; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f; + Attributes[GameAttributes.Level] = 1; + Attributes[GameAttributes.Hitpoints_Max] = 100000; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f; WalkSpeed = 0.3f * monsterData.AttributeModifiers[129]; // TODO: this is probably multiplied by something erekose the 0.3 is because he is way too fast otherwise } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Hope.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Hope.cs index b45ec62..5163058 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Hope.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Hope.cs @@ -11,7 +11,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { Field7 = 1; - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Humans.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Humans.cs index f6b3b98..3c6e262 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Humans.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Humans.cs @@ -20,8 +20,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { Field7 = 1; - Attributes[GameAttribute.TeamID] = 2; - Attributes[GameAttribute.NPC_Has_Interact_Options, 0] = false; + Attributes[GameAttributes.TeamID] = 2; + Attributes[GameAttributes.NPC_Has_Interact_Options, 0] = false; } public override bool Reveal(PlayerSystem.Player player) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/LeahNPC.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/LeahNPC.cs index a4f9029..65a24f5 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/LeahNPC.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/LeahNPC.cs @@ -1,11 +1,6 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -16,7 +11,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { Field7 = 1; - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/LorathNahr_NPC.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/LorathNahr_NPC.cs index 7e34a02..dab3b34 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/LorathNahr_NPC.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/LorathNahr_NPC.cs @@ -24,20 +24,20 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data; var monsterData = (Monster.Target as MonsterFF); - Attributes[GameAttribute.Level] = 1; - Attributes[GameAttribute.Hitpoints_Max] = 100000; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Invulnerable] = true; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Level] = 1; + Attributes[GameAttributes.Hitpoints_Max] = 100000; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Invulnerable] = true; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; if (world.SNO == WorldSno.x1_westmarch_overlook_d) { - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 0f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 0f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 0f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 0f; } else { - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f; } WalkSpeed = 0.3f * monsterData.AttributeModifiers[129]; // TODO: this is probably multiplied by something erekose the 0.3 is because he is way too fast otherwise } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Mystic_NoVendor.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Mystic_NoVendor.cs index b14151d..79207a1 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Mystic_NoVendor.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Mystic_NoVendor.cs @@ -1,9 +1,5 @@ -using System; -using System.Linq; -using DiIiS_NA.GameServer.GSSystem.MapSystem; +using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.D3_GameServer.Core.Types.SNO; @@ -15,7 +11,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public MysticNoVendor(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; } protected override void ReadTags() @@ -30,7 +26,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public TemplarNPC(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; } protected override void ReadTags() diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Cow.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Cow.cs index 338c8cf..84a8496 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Cow.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Cow.cs @@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem : base(world, sno, tags) { Field7 = 1; - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Farnham.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Farnham.cs index 898ea21..11202a3 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Farnham.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Farnham.cs @@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { Field7 = 1; - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Griswold.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Griswold.cs index 53e1448..6687afb 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Griswold.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Griswold.cs @@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { Field7 = 1; - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Ogden.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Ogden.cs index d0874b3..04c42b4 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Ogden.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Ogden.cs @@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { Field7 = 1; - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Pepin.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Pepin.cs index 37238a3..aca3982 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Pepin.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/OldTristramEvent/Pepin.cs @@ -12,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { Field7 = 1; - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/TownLeah.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/TownLeah.cs index 823124d..4b05e0c 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/TownLeah.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/TownLeah.cs @@ -23,12 +23,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data; var monsterData = (Monster.Target as MonsterFF); - Attributes[GameAttribute.Level] = 1; - Attributes[GameAttribute.Hitpoints_Max] = 100000; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.2f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f; + Attributes[GameAttributes.Level] = 1; + Attributes[GameAttributes.Hitpoints_Max] = 100000; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Attacks_Per_Second] = 1.2f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f; WalkSpeed = 0.3f * monsterData.AttributeModifiers[129]; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Tyrael.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Tyrael.cs index c642c2e..9ee2039 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Tyrael.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NPC/Tyrael.cs @@ -23,12 +23,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations var monsterLevels = (GameBalance)MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data; var monsterData = (Monster.Target as MonsterFF); - Attributes[GameAttribute.Level] = 1; - Attributes[GameAttribute.Hitpoints_Max] = 100000; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f; + Attributes[GameAttributes.Level] = 1; + Attributes[GameAttributes.Hitpoints_Max] = 100000; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f; WalkSpeed = 0.3f * monsterData.AttributeModifiers[129]; // TODO: this is probably multiplied by something erekose the 0.3 is because he is way too fast otherwise } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NecromancerFlesh.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NecromancerFlesh.cs index fa14590..cd7c6cc 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NecromancerFlesh.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NecromancerFlesh.cs @@ -1,5 +1,4 @@ -using DiIiS_NA.Core.Logging; -using DiIiS_NA.D3_GameServer.Core.Types.SNO; +using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.MessageSystem; @@ -15,7 +14,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations Field2 = 16;//16; Field7 = 0x00000001; CollFlags = 1; // this.CollFlags = 0; a hack for passing through blockers /fasbat - Attributes[GameAttribute.Hitpoints_Cur] = 1; + Attributes[GameAttributes.Hitpoints_Cur] = 1; } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NephalemStone.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NephalemStone.cs index b81022c..a2cf242 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NephalemStone.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/NephalemStone.cs @@ -14,11 +14,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public NephalemStone(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.TeamID] = 2; - Attributes[GameAttribute.MinimapActive] = true; - Attributes[GameAttribute.Untargetable] = false; + Attributes[GameAttributes.TeamID] = 2; + Attributes[GameAttributes.MinimapActive] = true; + Attributes[GameAttributes.Untargetable] = false; Attributes.BroadcastChangedIfRevealed(); - Attributes[GameAttribute.MinimapIconOverride] = 221224;//327066; + Attributes[GameAttributes.MinimapIconOverride] = 221224;//327066; } public override void OnTargeted(Player player, TargetMessage message) @@ -31,7 +31,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations if (!base.Reveal(player)) return false; - var animationTag = Attributes[GameAttribute.Untargetable] ? AnimationSetKeys.Open : AnimationSetKeys.IdleDefault; + var animationTag = Attributes[GameAttributes.Untargetable] ? AnimationSetKeys.Open : AnimationSetKeys.IdleDefault; var animation = (AnimationSno)AnimationSet.TagMapAnimDefault[animationTag]; PlayAnimation(5, animation); SetIdleAnimation(animation); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ProximityTriggeredGizmo.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ProximityTriggeredGizmo.cs index bdd6e30..ee339d3 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ProximityTriggeredGizmo.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ProximityTriggeredGizmo.cs @@ -5,10 +5,6 @@ using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations @@ -76,7 +72,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations CollFlags = 0 }, this); - Attributes[GameAttribute.Deleted_On_Server] = true; + Attributes[GameAttributes.Deleted_On_Server] = true; Attributes.BroadcastChangedIfRevealed(); RelativeTickTimer destroy = new RelativeTickTimer(World.Game, duration, x => Destroy()); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Rare.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Rare.cs index 2520b71..a07ed87 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Rare.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Rare.cs @@ -1,6 +1,5 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.GeneratorsSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; @@ -13,14 +12,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public Rare(MapSystem.World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Hitpoints_Max] *= 5f; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Immune_To_Charm] = true; - Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 3.5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] *= 3.5f; - Attributes[GameAttribute.Movement_Scalar] = Attributes[GameAttribute.Movement_Scalar] * 0.5f; - Attributes[GameAttribute.Run_Speed_Granted] = Attributes[GameAttribute.Run_Speed_Granted] * 0.5f; - Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 20f; + Attributes[GameAttributes.Hitpoints_Max] *= 5f; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Immune_To_Charm] = true; + Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 3.5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] *= 3.5f; + Attributes[GameAttributes.Movement_Scalar] = Attributes[GameAttributes.Movement_Scalar] * 0.5f; + Attributes[GameAttributes.Run_Speed_Granted] = Attributes[GameAttributes.Run_Speed_Granted] * 0.5f; + Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 20f; NamePrefix = MonsterAffixGenerator.GeneratePrefixName(); NameSuffix = MonsterAffixGenerator.GenerateSuffixName(); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/RareMinion.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/RareMinion.cs index da76f2e..ad6dae6 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/RareMinion.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/RareMinion.cs @@ -1,12 +1,9 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; -using DiIiS_NA.GameServer.GSSystem.GeneratorsSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Misc; -using System; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -15,10 +12,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public RareMinion(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Hitpoints_Max] *= 3.0f; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 1.5f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] *= 1.5f; + Attributes[GameAttributes.Hitpoints_Max] *= 3.0f; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 1.5f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] *= 1.5f; //MonsterAffixGenerator.Generate(this, this.World.Game.Difficulty + 1); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Readable.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Readable.cs index 6b07d1a..34f651c 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Readable.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Readable.cs @@ -1,16 +1,13 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.GeneratorsSystem; using DiIiS_NA.GameServer.GSSystem.ItemsSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Misc; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; -using System; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -21,7 +18,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public Readable(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.TeamID] = 1; + Attributes[GameAttributes.TeamID] = 1; } @@ -65,14 +62,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations }, this); used = true; - Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; - Attributes[GameAttribute.TeamID] = 2; - Attributes[GameAttribute.Untargetable] = true; - Attributes[GameAttribute.Operatable] = false; - Attributes[GameAttribute.Operatable_Story_Gizmo] = false; - Attributes[GameAttribute.Disabled] = true; + Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; + Attributes[GameAttributes.TeamID] = 2; + Attributes[GameAttributes.Untargetable] = true; + Attributes[GameAttributes.Operatable] = false; + Attributes[GameAttributes.Operatable_Story_Gizmo] = false; + Attributes[GameAttributes.Disabled] = true; //this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID); - Attributes[GameAttribute.Chest_Open, 0xFFFFFF] = true; + Attributes[GameAttributes.Chest_Open, 0xFFFFFF] = true; Attributes.BroadcastChangedIfRevealed(); base.OnTargeted(player, message); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A2BelialBomb.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A2BelialBomb.cs index bd9d072..14d6591 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A2BelialBomb.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A2BelialBomb.cs @@ -2,10 +2,6 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations @@ -30,15 +26,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations DamageMin = World.Game.MonsterLevel * 120f; float DamageDelta = DamageMin * 0.3f * World.Game.DmgModifier; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = DamageMin * World.Game.DmgModifier; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = DamageDelta; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = DamageMin * World.Game.DmgModifier; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = DamageDelta; - Attributes[GameAttribute.Team_Override] = 2; - Attributes[GameAttribute.Untargetable] = true; - Attributes[GameAttribute.NPC_Is_Operatable] = false; - Attributes[GameAttribute.Operatable] = false; - Attributes[GameAttribute.Operatable_Story_Gizmo] = false; - Attributes[GameAttribute.Immunity] = true; + Attributes[GameAttributes.Team_Override] = 2; + Attributes[GameAttributes.Untargetable] = true; + Attributes[GameAttributes.NPC_Is_Operatable] = false; + Attributes[GameAttributes.Operatable] = false; + Attributes[GameAttributes.Operatable_Story_Gizmo] = false; + Attributes[GameAttributes.Immunity] = true; Attributes.BroadcastChangedIfRevealed(); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A5BogBeacon.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A5BogBeacon.cs index 9634aca..aea7534 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A5BogBeacon.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A5BogBeacon.cs @@ -42,9 +42,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects AnimationSNO = AnimationSetKeys.Open.ID }, this); - Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; + Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; //this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID); - Attributes[GameAttribute.Gizmo_State] = 1; + Attributes[GameAttributes.Gizmo_State] = 1; CollFlags = 0; isOpened = true; @@ -53,11 +53,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects public override void OnTargeted(Player player, TargetMessage message) { - if (Attributes[GameAttribute.Disabled]) return; + if (Attributes[GameAttributes.Disabled]) return; Open(); base.OnTargeted(player, message); - Attributes[GameAttribute.Disabled] = true; + Attributes[GameAttributes.Disabled] = true; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A5ClassGhost.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A5ClassGhost.cs index 4b3e224..7e08150 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A5ClassGhost.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/A5ClassGhost.cs @@ -3,10 +3,7 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.LoginServer.Toons; -using System.Drawing; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -29,7 +26,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { CollFlags = 1; WalkSpeed = 0; - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; //this.Attributes[GameAttribute.MinimapIconOverride] = 120356; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/BelialRoom.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/BelialRoom.cs index 099a973..e8e97f8 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/BelialRoom.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/BelialRoom.cs @@ -6,11 +6,6 @@ using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -21,13 +16,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects : base(world, sno, tags) { bool Activated = false; - Attributes[GameAttribute.Team_Override] = (Activated ? -1 : 2); - Attributes[GameAttribute.Untargetable] = !Activated; - Attributes[GameAttribute.NPC_Is_Operatable] = Activated; - Attributes[GameAttribute.Operatable] = Activated; - Attributes[GameAttribute.Operatable_Story_Gizmo] = Activated; - Attributes[GameAttribute.Disabled] = !Activated; - Attributes[GameAttribute.Immunity] = !Activated; + Attributes[GameAttributes.Team_Override] = (Activated ? -1 : 2); + Attributes[GameAttributes.Untargetable] = !Activated; + Attributes[GameAttributes.NPC_Is_Operatable] = Activated; + Attributes[GameAttributes.Operatable] = Activated; + Attributes[GameAttributes.Operatable_Story_Gizmo] = Activated; + Attributes[GameAttributes.Disabled] = !Activated; + Attributes[GameAttributes.Immunity] = !Activated; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/BladeTrap.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/BladeTrap.cs index 6affd3c..aa182e2 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/BladeTrap.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/BladeTrap.cs @@ -2,11 +2,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -19,7 +14,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects Field2 = 0x8; CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; //Logger.Debug("Jondar, tagSNO: {0}", tags[MarkerKeys.OnActorSpawnedScript].Id); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Brawler.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Brawler.cs index 6840ea9..2fb3b13 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Brawler.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Brawler.cs @@ -4,11 +4,6 @@ using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -18,7 +13,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects public Brawler(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; } public override bool Reveal(Player player) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/ButcherFloorPanel.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/ButcherFloorPanel.cs index f575987..a0bb7d0 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/ButcherFloorPanel.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/ButcherFloorPanel.cs @@ -4,11 +4,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -32,7 +27,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects Field2 = 0x8; CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; (Brain as MonsterBrain).RemovePresetPower(30592); (Brain as MonsterBrain).AddPresetPower(96925); } @@ -50,10 +45,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects Field2 = 0x8; CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Movement_Scalar] = 0f; - Attributes[GameAttribute.Run_Speed_Granted] = 0f; + Attributes[GameAttributes.Movement_Scalar] = 0f; + Attributes[GameAttributes.Run_Speed_Granted] = 0f; Spawner = true; - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; (Brain as MonsterBrain).RemovePresetPower(30592); (Brain as MonsterBrain).AddPresetPower(108017); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/CainBook.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/CainBook.cs index a89f62e..9b9ed83 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/CainBook.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/CainBook.cs @@ -7,10 +7,7 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; using System; -using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -25,8 +22,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects public CainBook(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.TeamID] = 1; - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.TeamID] = 1; + Attributes[GameAttributes.MinimapActive] = true; } public override bool Reveal(Player player) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/CowKing.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/CowKing.cs index ad6a4e6..cacd112 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/CowKing.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/CowKing.cs @@ -4,12 +4,6 @@ using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { [HandledSNO(ActorSno._tentaclelord)] @@ -22,7 +16,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; } public override bool Reveal(Player player) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Gharbad.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Gharbad.cs index e5f6cc2..f6fca17 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Gharbad.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Gharbad.cs @@ -15,7 +15,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; } public override bool Reveal(Player player) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Jondar.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Jondar.cs index 1e5b814..84b58b9 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Jondar.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Jondar.cs @@ -4,11 +4,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -21,11 +16,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects : base(world, sno, tags) { Field2 = 0x8; - Attributes[GameAttribute.MinimapActive] = true; - Attributes[GameAttribute.Untargetable] = false; - Attributes[GameAttribute.Operatable] = true; - Attributes[GameAttribute.Disabled] = false; - Attributes[GameAttribute.TeamID] = 10; + Attributes[GameAttributes.MinimapActive] = true; + Attributes[GameAttributes.Untargetable] = false; + Attributes[GameAttributes.Operatable] = true; + Attributes[GameAttributes.Disabled] = false; + Attributes[GameAttributes.TeamID] = 10; WalkSpeed = 0.1f; //Logger.Debug("Jondar, tagSNO: {0}", tags[MarkerKeys.OnActorSpawnedScript].Id); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Leoric.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Leoric.cs index 7eb1752..879889a 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Leoric.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Leoric.cs @@ -14,7 +14,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects public Leoric(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; } @@ -41,13 +41,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects bool status = false; - Attributes[GameAttribute.Team_Override] = (status ? -1 : 2); - Attributes[GameAttribute.Untargetable] = !status; - Attributes[GameAttribute.NPC_Is_Operatable] = status; - Attributes[GameAttribute.Operatable] = status; - Attributes[GameAttribute.Operatable_Story_Gizmo] = status; - Attributes[GameAttribute.Disabled] = !status; - Attributes[GameAttribute.Immunity] = !status; + Attributes[GameAttributes.Team_Override] = (status ? -1 : 2); + Attributes[GameAttributes.Untargetable] = !status; + Attributes[GameAttributes.NPC_Is_Operatable] = status; + Attributes[GameAttributes.Operatable] = status; + Attributes[GameAttributes.Operatable_Story_Gizmo] = status; + Attributes[GameAttributes.Disabled] = !status; + Attributes[GameAttributes.Immunity] = !status; Attributes.BroadcastChangedIfRevealed(); Attributes.BroadcastChangedIfRevealed(); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/PVPSafeZone.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/PVPSafeZone.cs index 88e01b0..790cba1 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/PVPSafeZone.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/PVPSafeZone.cs @@ -2,11 +2,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -20,8 +15,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects Field2 = 0x8; CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Invulnerable] = true; - Attributes[GameAttribute.Disabled] = true; + Attributes[GameAttributes.Invulnerable] = true; + Attributes[GameAttributes.Disabled] = true; WalkSpeed = 0f; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/RefugeeCart.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/RefugeeCart.cs index bcbc997..f154678 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/RefugeeCart.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/RefugeeCart.cs @@ -4,11 +4,6 @@ using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -44,8 +39,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { base.OnTargeted(player, message); player.AddFollower(World.GetActorBySNO(ActorSno._caldeumpoor_male_f_ambient)); - Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; - Attributes[GameAttribute.Disabled] = true; + Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; + Attributes[GameAttributes.Disabled] = true; Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Scoundrel.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Scoundrel.cs index ab122f2..672907f 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Scoundrel.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/Scoundrel.cs @@ -2,11 +2,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -27,10 +22,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects : base(world, sno, tags) { //this.Attributes[GameAttribute.MinimapActive] = true; - Attributes[GameAttribute.Untargetable] = false; - Attributes[GameAttribute.Operatable] = true; - Attributes[GameAttribute.Disabled] = false; - Attributes[GameAttribute.TeamID] = 0; + Attributes[GameAttributes.Untargetable] = false; + Attributes[GameAttributes.Operatable] = true; + Attributes[GameAttributes.Disabled] = false; + Attributes[GameAttributes.TeamID] = 0; WalkSpeed = 0.5f; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/SwordOfLeoric.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/SwordOfLeoric.cs index 52e15d9..ba66463 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/SwordOfLeoric.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/SwordOfLeoric.cs @@ -9,9 +9,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -48,12 +45,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects LachdananGhost.Move(Position, MovementHelpers.GetFacingAngle(LeoricGhost, LachdananGhost)); LachdananGhost.Move(Position, MovementHelpers.GetFacingAngle(LachdananGhost, Position)); - LachdananGhost.Attributes[GameAttribute.TeamID] = 2; + LachdananGhost.Attributes[GameAttributes.TeamID] = 2; LachdananGhost.Attributes.BroadcastChangedIfRevealed(); (LachdananGhost as Monster).Brain.DeActivate(); foreach (var GKnight in GhostKnights) { - GKnight.Attributes[GameAttribute.TeamID] = 2; + GKnight.Attributes[GameAttributes.TeamID] = 2; GKnight.Attributes.BroadcastChangedIfRevealed(); (GKnight as Monster).Brain.DeActivate(); GKnight.Move(Position, MovementHelpers.GetFacingAngle(GKnight, Position)); @@ -86,13 +83,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects }, this); bool status = false; - Attributes[GameAttribute.Team_Override] = (status ? -1 : 2); - Attributes[GameAttribute.Untargetable] = !status; - Attributes[GameAttribute.NPC_Is_Operatable] = status; - Attributes[GameAttribute.Operatable] = status; - Attributes[GameAttribute.Operatable_Story_Gizmo] = status; - Attributes[GameAttribute.Disabled] = !status; - Attributes[GameAttribute.Immunity] = !status; + Attributes[GameAttributes.Team_Override] = (status ? -1 : 2); + Attributes[GameAttributes.Untargetable] = !status; + Attributes[GameAttributes.NPC_Is_Operatable] = status; + Attributes[GameAttributes.Operatable] = status; + Attributes[GameAttributes.Operatable_Story_Gizmo] = status; + Attributes[GameAttributes.Disabled] = !status; + Attributes[GameAttributes.Immunity] = !status; Attributes.BroadcastChangedIfRevealed(); } private bool StartConversation(World world, Int32 conversationId) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actIIICatapult.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actIIICatapult.cs index 9d194f6..f7bd987 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actIIICatapult.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actIIICatapult.cs @@ -5,11 +5,6 @@ using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -25,8 +20,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects public ActIIICatapult(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; - Attributes[GameAttribute.MinimapDisableArrow] = true; + Attributes[GameAttributes.MinimapActive] = true; + Attributes[GameAttributes.MinimapDisableArrow] = true; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actIITombLever.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actIITombLever.cs index b48c106..063d8be 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actIITombLever.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actIITombLever.cs @@ -4,11 +4,6 @@ using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -40,7 +35,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects public override void OnTargeted(Player player, TargetMessage message) { - if (Attributes[GameAttribute.Disabled] == true) return; + if (Attributes[GameAttributes.Disabled] == true) return; try { Door waterfall = World.FindActorAt(ActorSno._caout_oasis_door_aqueduct_a_top, Position, 80.0f) as Door; @@ -56,9 +51,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { waterfall.Open(); } - Attributes[GameAttribute.Disabled] = true; - Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; - Attributes[GameAttribute.Gizmo_State] = 1; + Attributes[GameAttributes.Disabled] = true; + Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; + Attributes[GameAttributes.Gizmo_State] = 1; Attributes.BroadcastChangedIfRevealed(); } catch { } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actVFortressPortal.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actVFortressPortal.cs index ce1d16e..ff778ce 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actVFortressPortal.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/actVFortressPortal.cs @@ -8,12 +8,8 @@ using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Map; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; -using System; -using System.Collections.Generic; using System.Drawing; using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects { @@ -23,7 +19,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects public ActVFortressPortal(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; } public override void OnTargeted(Player player, TargetMessage message) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/caOut_Cage.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/caOut_Cage.cs index 42b1348..b1c04e7 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/caOut_Cage.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/ScriptObjects/caOut_Cage.cs @@ -20,16 +20,16 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public override void OnTargeted(Player player, TargetMessage message) { - if (Attributes[GameAttribute.Disabled]) return; + if (Attributes[GameAttributes.Disabled]) return; PlayAnimation(5, (AnimationSno)AnimationSet.TagMapAnimDefault[AnimationSetKeys.Opening]); SetIdleAnimation((AnimationSno)AnimationSetKeys.Open.ID); - Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; + Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; Attributes.BroadcastChangedIfRevealed(); base.OnTargeted(player, message); - Attributes[GameAttribute.Disabled] = true; + Attributes[GameAttributes.Disabled] = true; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/SetDungeon.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/SetDungeon.cs index 1b3b84a..48965f9 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/SetDungeon.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/SetDungeon.cs @@ -43,8 +43,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public SetDungeon(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.TeamID] = 2; - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.TeamID] = 2; + Attributes[GameAttributes.MinimapActive] = true; Attributes.BroadcastChangedIfRevealed(); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Shrine.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Shrine.cs index 8c14c77..67ae7ce 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Shrine.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Shrine.cs @@ -1,6 +1,4 @@ -using System; -using System.Linq; -using DiIiS_NA.GameServer.GSSystem.MapSystem; +using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; @@ -16,7 +14,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public Shrine(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; } private bool Activated = false; @@ -67,9 +65,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations break; } - Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; + Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; //this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID); - Attributes[GameAttribute.Gizmo_State] = 1; + Attributes[GameAttributes.Gizmo_State] = 1; Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Spawners/KingGhost_Spawner.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Spawners/KingGhost_Spawner.cs index a5d069f..9210fad 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Spawners/KingGhost_Spawner.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Spawners/KingGhost_Spawner.cs @@ -2,11 +2,7 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using DiIiS_NA.GameServer.MessageSystem; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Spawners { @@ -28,7 +24,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Spawners _collapsed = true; var KingGhost = World.SpawnMonster(ActorSno._skeletonking_ghost, Position); - KingGhost.Attributes[MessageSystem.GameAttribute.Untargetable] = true; + KingGhost.Attributes[GameAttributes.Untargetable] = true; KingGhost.Attributes.BroadcastChangedIfRevealed(); StartConversation(World, 17921); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Stash.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Stash.cs index 86dbe8a..c0da55c 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Stash.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Stash.cs @@ -5,11 +5,6 @@ using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Misc; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -19,7 +14,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public Stash(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; //this.Attributes[GameAttribute.MinimapIconOverride] = 202226; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Traps/FrostTrapSwingingBlade.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Traps/FrostTrapSwingingBlade.cs index 30d44d8..18a266a 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Traps/FrostTrapSwingingBlade.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Traps/FrostTrapSwingingBlade.cs @@ -1,14 +1,7 @@ -using DiIiS_NA.Core.Logging; -using DiIiS_NA.D3_GameServer.Core.Types.SNO; +using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -23,10 +16,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations CollFlags = 0; WalkSpeed = 0; - Attributes[GameAttribute.Movement_Scalar] = 0f; - Attributes[GameAttribute.Run_Speed_Granted] = 0f; + Attributes[GameAttributes.Movement_Scalar] = 0f; + Attributes[GameAttributes.Run_Speed_Granted] = 0f; Spawner = true; - Attributes[GameAttribute.Invulnerable] = true; + Attributes[GameAttributes.Invulnerable] = true; //(Brain as MonsterBrain).RemovePresetPower(30592); //(Brain as MonsterBrain).AddPresetPower(96925); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Vendor.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Vendor.cs index ea3217c..3ca73e4 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Vendor.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Vendor.cs @@ -7,12 +7,8 @@ using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.NPC; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using DiIiS_NA.LoginServer.Toons; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -84,8 +80,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public Vendor(World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.TeamID] = 0; - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.TeamID] = 0; + Attributes[GameAttributes.MinimapActive] = true; level = World.Game.InitialMonsterLevel; _vendorGrid = new InventoryGrid(this, 1, 20, (int)EquipmentSlotId.Vendor); PopulateItems(); @@ -189,7 +185,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations return; } - int cost = (int)((item.GetPrice() * (1f + item.Attributes[GameAttribute.Item_Cost_Percent_Bonus])) * Math.Max(1, item.Attributes[GameAttribute.ItemStackQuantityLo])); + int cost = (int)((item.GetPrice() * (1f + item.Attributes[GameAttributes.Item_Cost_Percent_Bonus])) * Math.Max(1, item.Attributes[GameAttributes.ItemStackQuantityLo])); //Check gold here if (currentGold < cost) return; diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Wardrobe.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Wardrobe.cs index 53bd3d0..c8da819 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Wardrobe.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Wardrobe.cs @@ -3,11 +3,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -17,7 +12,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public Wardrobe(MapSystem.World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Waypoint.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Waypoint.cs index 837e409..e23dfc2 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Waypoint.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/Waypoint.cs @@ -34,7 +34,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations : base(world, sno, tags) { //this.Attributes[GameAttribute.MinimapIconOverride] = 129569; - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; } public override void OnEnter(World world) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/XPPool.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/XPPool.cs index 47ae8a7..2362305 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/XPPool.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Implementations/XPPool.cs @@ -2,11 +2,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations { @@ -15,17 +10,17 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations public XPPool(MapSystem.World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.MinimapActive] = true; //Attributes[GameAttribute.MinimapIconOverride] = 376779; - Attributes[GameAttribute.Gizmo_State] = 0; + Attributes[GameAttributes.Gizmo_State] = 0; } public override void OnTargeted(PlayerSystem.Player player, TargetMessage message) { - Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; + Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; //this.Attributes[GameAttribute.Gizmo_Operator_ACDID] = unchecked((int)player.DynamicID); - Attributes[GameAttribute.Gizmo_State] = 1; + Attributes[GameAttributes.Gizmo_State] = 1; Attributes.BroadcastChangedIfRevealed(); //this.World.BroadcastIfRevealed(plr => new XPPoolActivatedMessage { ActorID = this.DynamicID(plr) }, this); foreach (var plr in GetPlayersInRange(100f)) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/InteractiveNPC.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/InteractiveNPC.cs index 0346893..4628b52 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/InteractiveNPC.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/InteractiveNPC.cs @@ -2,17 +2,13 @@ using System.Collections.Generic; using System.Linq; using DiIiS_NA.Core.Extensions; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Pet; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World; using DiIiS_NA.GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.GSSystem.ObjectsSystem; -using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.Core.MPQ.FileFormats; using DiIiS_NA.Core.Logging; -using DiIiS_NA.GameServer.GSSystem.GameSystem; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings; using DiIiS_NA.Core.Helpers.Math; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Interactions; @@ -43,16 +39,16 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem public InteractiveNPC(MapSystem.World world, ActorSno sno, TagMap tags) : base(world, sno, tags) { - Attributes[GameAttribute.NPC_Has_Interact_Options, 0] = true; //second param - playerIndex - Attributes[GameAttribute.NPC_Has_Interact_Options, 1] = true; - Attributes[GameAttribute.NPC_Has_Interact_Options, 2] = true; - Attributes[GameAttribute.NPC_Has_Interact_Options, 3] = true; - Attributes[GameAttribute.NPC_Has_Interact_Options, 4] = true; - Attributes[GameAttribute.NPC_Has_Interact_Options, 5] = true; - Attributes[GameAttribute.NPC_Has_Interact_Options, 6] = true; - Attributes[GameAttribute.NPC_Has_Interact_Options, 7] = true; - Attributes[GameAttribute.NPC_Is_Operatable] = true; - Attributes[GameAttribute.MinimapActive] = true; + Attributes[GameAttributes.NPC_Has_Interact_Options, 0] = true; //second param - playerIndex + Attributes[GameAttributes.NPC_Has_Interact_Options, 1] = true; + Attributes[GameAttributes.NPC_Has_Interact_Options, 2] = true; + Attributes[GameAttributes.NPC_Has_Interact_Options, 3] = true; + Attributes[GameAttributes.NPC_Has_Interact_Options, 4] = true; + Attributes[GameAttributes.NPC_Has_Interact_Options, 5] = true; + Attributes[GameAttributes.NPC_Has_Interact_Options, 6] = true; + Attributes[GameAttributes.NPC_Has_Interact_Options, 7] = true; + Attributes[GameAttributes.NPC_Is_Operatable] = true; + Attributes[GameAttributes.MinimapActive] = true; Interactions = new List(); Conversations = new List(); @@ -152,12 +148,12 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem if (this is Healer) return; - Attributes[GameAttribute.Conversation_Icon, 0] = questConversation ? 2 : (sideConversation ? 4 : 0); + Attributes[GameAttributes.Conversation_Icon, 0] = questConversation ? 2 : (sideConversation ? 4 : 0); if (ForceConversationSNO != -1) { questConversation = true; - Attributes[GameAttribute.Conversation_Icon, 0] = questConversation ? 2 : (sideConversation ? 4 : 0); + Attributes[GameAttributes.Conversation_Icon, 0] = questConversation ? 2 : (sideConversation ? 4 : 0); Conversations.Add(new ConversationInteraction(ForceConversationSNO)); } @@ -171,7 +167,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem World.Game.CurrentSideQuest == 356996 || World.Game.CurrentSideQuest == 356999 || World.Game.CurrentSideQuest == 357001; - Attributes[GameAttribute.Conversation_Icon, 0] = active ? 1 : 3; + Attributes[GameAttributes.Conversation_Icon, 0] = active ? 1 : 3; Attributes.BroadcastChangedIfRevealed(); } @@ -179,9 +175,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem foreach (var conv in Conversations) if (conv.Read == false) HasReaded = true; - if (!HasReaded && Attributes[GameAttribute.Conversation_Icon, 0] != 2) + if (!HasReaded && Attributes[GameAttributes.Conversation_Icon, 0] != 2) { - Attributes[GameAttribute.Conversation_Icon, 0] = 1; + Attributes[GameAttributes.Conversation_Icon, 0] = 1; //if (entry.Type == ConversationTypes.GlobalFloat) @@ -201,7 +197,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem try { - if (player.Position.DistanceSquared(ref _position) < 121f && !_ambientPlayed && Attributes[GameAttribute.Conversation_Icon, 0] != 2) + if (player.Position.DistanceSquared(ref _position) < 121f && !_ambientPlayed && Attributes[GameAttributes.Conversation_Icon, 0] != 2) { _ambientPlayed = true; if (FastRandom.Instance.Next(100) < 50) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Living.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Living.cs index 0b682b8..293c70f 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Living.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Living.cs @@ -9,10 +9,6 @@ using DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ActorSystem { @@ -40,11 +36,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem Field10 = 0x0; //scripted //this.Attributes[GameAttribute.Hitpoints_Max_Total] = 4.546875f; - Attributes[GameAttribute.Hitpoints_Max] = 4.546875f; + Attributes[GameAttributes.Hitpoints_Max] = 4.546875f; //scripted //this.Attributes[GameAttribute.Hitpoints_Total_From_Level] = 0f; - Attributes[GameAttribute.Hitpoints_Cur] = 4.546875f; + Attributes[GameAttributes.Hitpoints_Cur] = 4.546875f; - Attributes[GameAttribute.Level] = 1; + Attributes[GameAttributes.Level] = 1; } public override bool Reveal(Player player) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Minion.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Minion.cs index 0ef98a6..ba1942f 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Minion.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Minion.cs @@ -1,9 +1,5 @@ using System; -using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; -using MonsterFF = DiIiS_NA.Core.MPQ.FileFormats.Monster; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Pet; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; @@ -62,21 +58,21 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem var monsterLevels = (GameBalance)DiIiS_NA.Core.MPQ.MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data; if (Revived) LifeTime = TickTimer.WaitSeconds(world.Game, 15f); - Attributes[GameAttribute.Level] = master.Attributes[GameAttribute.Level]; + Attributes[GameAttributes.Level] = master.Attributes[GameAttributes.Level]; if (!QuestFollower) { //this.Attributes[GameAttribute.Hitpoints_Max] = monsterLevels.MonsterLevel[this.Attributes[GameAttribute.Level]].F0; - Attributes[GameAttribute.Hitpoints_Max] = 1000f + (Attributes[GameAttribute.Level] * 150f) + (Attributes[GameAttribute.Alt_Level] * 150f) + (master.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.35f); - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max]; - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1; - Attributes[GameAttribute.Hitpoints_Regen_Per_Second] = 1f; + Attributes[GameAttributes.Hitpoints_Max] = 1000f + (Attributes[GameAttributes.Level] * 150f) + (Attributes[GameAttributes.Alt_Level] * 150f) + (master.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.35f); + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max]; + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = 1; + Attributes[GameAttributes.Hitpoints_Regen_Per_Second] = 1f; } - Attributes[GameAttribute.Weapon_Crit_Chance] = master.Attributes[GameAttribute.Weapon_Crit_Chance]; - Attributes[GameAttribute.Crit_Damage_Percent] = master.Attributes[GameAttribute.Crit_Damage_Percent]; - Attributes[GameAttribute.Crit_Percent_Bonus_Capped] = master.Attributes[GameAttribute.Crit_Percent_Bonus_Capped]; + Attributes[GameAttributes.Weapon_Crit_Chance] = master.Attributes[GameAttributes.Weapon_Crit_Chance]; + Attributes[GameAttributes.Crit_Damage_Percent] = master.Attributes[GameAttributes.Crit_Damage_Percent]; + Attributes[GameAttributes.Crit_Percent_Bonus_Capped] = master.Attributes[GameAttributes.Crit_Percent_Bonus_Capped]; //this.Attributes[GameAttribute.Attack_Percent] = master.Attributes[GameAttribute.Attack_Bonus_Percent]; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = master.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0]; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = master.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0]; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0]; if (Master is Player) { @@ -88,7 +84,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem if (master != null) { //this.Attributes[GameAttribute.Summoned_By_ACDID] = (int)master.DynamicID; - Attributes[GameAttribute.TeamID] = master.Attributes[GameAttribute.TeamID]; + Attributes[GameAttributes.TeamID] = master.Attributes[GameAttributes.TeamID]; if (master is Player) { if ((master as Player).Followers.Values.Count(a => a == sno) >= SummonLimit) @@ -117,13 +113,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem _lastResourceUpdateTick = World.Game.TickCounter; if (!QuestFollower) { - float quantity = tickSeconds * Attributes[GameAttribute.Hitpoints_Regen_Per_Second]; + float quantity = tickSeconds * Attributes[GameAttributes.Hitpoints_Regen_Per_Second]; - if (Attributes[GameAttribute.Hitpoints_Cur] < Attributes[GameAttribute.Hitpoints_Max_Total]) + if (Attributes[GameAttributes.Hitpoints_Cur] < Attributes[GameAttributes.Hitpoints_Max_Total]) { - Attributes[GameAttribute.Hitpoints_Cur] = Math.Min( - Attributes[GameAttribute.Hitpoints_Cur] + quantity, - Attributes[GameAttribute.Hitpoints_Max_Total]); + Attributes[GameAttributes.Hitpoints_Cur] = Math.Min( + Attributes[GameAttributes.Hitpoints_Cur] + quantity, + Attributes[GameAttributes.Hitpoints_Max_Total]); Attributes.BroadcastChangedIfRevealed(); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Monster.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Monster.cs index 788b34c..6a1d9ad 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Monster.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Monster.cs @@ -15,7 +15,6 @@ using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.Core.Types.Math; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; using DiIiS_NA.D3_GameServer.Core.Types.SNO; using World = DiIiS_NA.GameServer.GSSystem.MapSystem.World; @@ -65,13 +64,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem Field2 = 0x8; GBHandle.Type = (int)ActorType.Monster; GBHandle.GBID = 1; - Attributes[GameAttribute.TeamID] = 9; + Attributes[GameAttributes.TeamID] = 9; if (Monster.Id != -1) WalkSpeed = ((MonsterFF)Monster.Target).AttributeModifiers[129]; //WalkSpeed /= 2f; Brain = new MonsterBrain(this); - Attributes[GameAttribute.Attacks_Per_Second] = 1.2f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.2f; UpdateStats(); } @@ -88,42 +87,42 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem public void UpdateStats() { var monsterLevels = (GameBalance)DiIiS_NA.Core.MPQ.MPQStorage.Data.Assets[SNOGroup.GameBalance][19760].Data; - bool fullHp = (Math.Abs(Attributes[GameAttribute.Hitpoints_Cur] - Attributes[GameAttribute.Hitpoints_Max_Total]) < Globals.FLOAT_TOLERANCE); - Attributes[GameAttribute.Level] = World.Game.MonsterLevel; + bool fullHp = (Math.Abs(Attributes[GameAttributes.Hitpoints_Cur] - Attributes[GameAttributes.Hitpoints_Max_Total]) < Globals.FLOAT_TOLERANCE); + Attributes[GameAttributes.Level] = World.Game.MonsterLevel; //this.Attributes[GameAttribute.Hitpoints_Max] = (int)monsterLevels.MonsterLevel[this.World.Game.MonsterLevel - 1].HPMin * (int)this.HPMultiplier * (int)this.World.Game.HPModifier; int monsterLevel = 1; monsterLevel = World.Game.ConnectedPlayers.Length > 1 ? World.Game.ConnectedPlayers[0].Level : World.Game.InitialMonsterLevel; - Attributes[GameAttribute.Hitpoints_Max] = (int)((int)monsterLevels.MonsterLevel[monsterLevel].HPMin + DiIiS_NA.Core.Helpers.Math.RandomHelper.Next(0, (int)monsterLevels.MonsterLevel[monsterLevel].HPDelta) * HpMultiplier * World.Game.HpModifier); - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = ((int)World.Game.ConnectedPlayers.Length + 1) * 1.5f; - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] *= GameServerConfig.Instance.RateMonsterHP; + Attributes[GameAttributes.Hitpoints_Max] = (int)((int)monsterLevels.MonsterLevel[monsterLevel].HPMin + DiIiS_NA.Core.Helpers.Math.RandomHelper.Next(0, (int)monsterLevels.MonsterLevel[monsterLevel].HPDelta) * HpMultiplier * World.Game.HpModifier); + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = ((int)World.Game.ConnectedPlayers.Length + 1) * 1.5f; + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] *= GameServerConfig.Instance.RateMonsterHP; if (World.Game.ConnectedPlayers.Length > 1) - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative];// / 2f; - var hpMax = Attributes[GameAttribute.Hitpoints_Max]; - var hpTotal = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative];// / 2f; + var hpMax = Attributes[GameAttributes.Hitpoints_Max]; + var hpTotal = Attributes[GameAttributes.Hitpoints_Max_Total]; float damageMin = monsterLevels.MonsterLevel[World.Game.MonsterLevel].Dmg * DmgMultiplier;// * 0.5f; float damageDelta = damageMin; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = damageMin * World.Game.DmgModifier * GameServerConfig.Instance.RateMonsterDMG; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = damageDelta; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = damageMin * World.Game.DmgModifier * GameServerConfig.Instance.RateMonsterDMG; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = damageDelta; if (monsterLevel > 30) { - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative];// * 0.5f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = damageMin * World.Game.DmgModifier * GameServerConfig.Instance.RateMonsterDMG;// * 0.2f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = damageDelta; + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative];// * 0.5f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = damageMin * World.Game.DmgModifier * GameServerConfig.Instance.RateMonsterDMG;// * 0.2f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = damageDelta; } if (monsterLevel > 60) { - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative];// * 0.7f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = damageMin * World.Game.DmgModifier * GameServerConfig.Instance.RateMonsterDMG;// * 0.15f; + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative];// * 0.7f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = damageMin * World.Game.DmgModifier * GameServerConfig.Instance.RateMonsterDMG;// * 0.15f; //this.Attributes[GameAttribute.Damage_Weapon_Delta, 0] = DamageDelta * 0.5f; } - _nativeHp = Attributes[GameAttribute.Hitpoints_Max_Total]; - _nativeDmg = Attributes[GameAttribute.Damage_Weapon_Min, 0]; + _nativeHp = Attributes[GameAttributes.Hitpoints_Max_Total]; + _nativeDmg = Attributes[GameAttributes.Damage_Weapon_Min, 0]; //if (full_hp) - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; Attributes.BroadcastChangedIfRevealed(); } @@ -147,9 +146,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem if (World.SNO == WorldSno.a4dun_diablo_arena) if (SNO == ActorSno._diablo) - if (Attributes[GameAttribute.Hitpoints_Cur] < (Attributes[GameAttribute.Hitpoints_Max_Total] / 2)) + if (Attributes[GameAttributes.Hitpoints_Cur] < (Attributes[GameAttributes.Hitpoints_Max_Total] / 2)) { - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; World.Game.QuestManager.Advance();//advancing United Evil quest var nextWorld = World.Game.GetWorld(WorldSno.a4dun_diablo_shadowrealm_01); foreach (var plr in World.Players.Values) @@ -190,9 +189,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem int count = player.World.Game.Players.Count; if (count > 0 && _adjustedPlayers != count) { - Attributes[GameAttribute.Damage_Weapon_Min, 0] = _nativeDmg * (1f + (0.05f * (count - 1) * player.World.Game.Difficulty)); - Attributes[GameAttribute.Hitpoints_Max] = _nativeHp * (1f + ((0.75f + (0.1f * player.World.Game.Difficulty)) * (count - 1))); - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = _nativeDmg * (1f + (0.05f * (count - 1) * player.World.Game.Difficulty)); + Attributes[GameAttributes.Hitpoints_Max] = _nativeHp * (1f + ((0.75f + (0.1f * player.World.Game.Difficulty)) * (count - 1))); + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; Attributes.BroadcastChangedIfRevealed(); _adjustedPlayers = count; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Movement/MoveToPointWithPathfindAction.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Movement/MoveToPointWithPathfindAction.cs index 9862455..76b67ec 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Movement/MoveToPointWithPathfindAction.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Movement/MoveToPointWithPathfindAction.cs @@ -95,7 +95,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement } if (Owner == null || - Owner.Attributes[GameAttribute.Hitpoints_Cur] == 0 || + Owner.Attributes[GameAttributes.Hitpoints_Cur] == 0 || Owner.GetObjectsInRange(50f).Count == 0 || MovementHelpers.GetDistance(Owner.Position, Heading) < AttackRadius || (Owner is Monster && (Owner as Monster).Brain.CurrentAction == null) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Movement/MoveToTargetWithPathfindAction.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Movement/MoveToTargetWithPathfindAction.cs index 2e15822..5d52c66 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Movement/MoveToTargetWithPathfindAction.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/Movement/MoveToTargetWithPathfindAction.cs @@ -135,7 +135,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement } if (Owner == null || - Owner.Attributes[GameAttribute.Hitpoints_Cur] == 0 || + Owner.Attributes[GameAttributes.Hitpoints_Cur] == 0 || Owner.GetObjectsInRange(60f).Count == 0 || MovementHelpers.GetDistance(Owner.Position, Target.Position) < AttackRadius || (Owner is Monster && (Owner as Monster).Brain.CurrentAction == null) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/NPC.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/NPC.cs index 44d95a2..3663886 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/NPC.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/NPC.cs @@ -14,8 +14,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem { Field2 = 0x9; Field7 = 1; - Attributes[GameAttribute.TeamID] = 2; - Attributes[GameAttribute.Is_NPC] = true; + Attributes[GameAttributes.TeamID] = 2; + Attributes[GameAttributes.Is_NPC] = true; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/StaticItem.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/StaticItem.cs index efccc42..1944704 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/StaticItem.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/StaticItem.cs @@ -1,8 +1,5 @@ -using DiIiS_NA.Core.Helpers.Math; -using DiIiS_NA.Core.Logging; +using DiIiS_NA.Core.Logging; using DiIiS_NA.D3_GameServer.Core.Types.SNO; -using DiIiS_NA.GameServer.Core.Types.Math; -using DiIiS_NA.GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; @@ -21,7 +18,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ActorSystem { GBHandle.Type = (int)ActorType.Item; GBHandle.GBID = -1;//944034263; - Attributes[GameAttribute.Operatable] = true; + Attributes[GameAttributes.Operatable] = true; } public override bool Reveal(Player player) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/Game.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/Game.cs index e5c84d7..05e5f29 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/Game.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/Game.cs @@ -39,7 +39,6 @@ using Actor = DiIiS_NA.GameServer.GSSystem.ActorSystem.Actor; using Monster = DiIiS_NA.GameServer.GSSystem.ActorSystem.Monster; using Scene = DiIiS_NA.GameServer.GSSystem.MapSystem.Scene; using World = DiIiS_NA.GameServer.GSSystem.MapSystem.World; -using DiIiS_NA.Core.MPQ.FileFormats; namespace DiIiS_NA.GameServer.GSSystem.GameSystem { @@ -1229,8 +1228,8 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem if (Players.Count == 1) { Logger.Trace("Game state is paused: {0}", message.Field0); - Players.First().Value.Attributes[GameAttribute.Disabled] = message.Field0; - Players.First().Value.Attributes[GameAttribute.Immobolize] = message.Field0; + Players.First().Value.Attributes[GameAttributes.Disabled] = message.Field0; + Players.First().Value.Attributes[GameAttributes.Immobolize] = message.Field0; //this.Players.First().Value.Attributes[GameAttribute.Stunned] = message.Field0; Players.First().Value.Attributes.BroadcastChangedIfRevealed(); //this.Players.First().Key.TickingEnabled = !message.Field0; @@ -1295,7 +1294,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem if (winner != null && CurrentPvPRound > 1) { BroadcastMessage("Round is over! Winner: " + winner.Toon.Name); - if (winner.Attributes[GameAttribute.TeamID] == 2) + if (winner.Attributes[GameAttributes.TeamID] == 2) RedTeamWins++; else BlueTeamWins++; @@ -1306,7 +1305,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem BroadcastMessage("Battle is over!"); try { - var totalWinner = Players.Values.Where(p => p.Attributes[GameAttribute.TeamID] == (RedTeamWins > BlueTeamWins ? 2 : 3)).FirstOrDefault(); + var totalWinner = Players.Values.Where(p => p.Attributes[GameAttributes.TeamID] == (RedTeamWins > BlueTeamWins ? 2 : 3)).FirstOrDefault(); BroadcastMessage("Winner: " + totalWinner.Toon.Name); } catch { Logger.Warn("Exception on FindWinner()"); } @@ -1330,7 +1329,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem } else { - var totalWinner = Players.Values.Where(p => p.Attributes[GameAttribute.TeamID] == (RedTeamWins > BlueTeamWins ? 2 : 3)).FirstOrDefault(); + var totalWinner = Players.Values.Where(p => p.Attributes[GameAttributes.TeamID] == (RedTeamWins > BlueTeamWins ? 2 : 3)).FirstOrDefault(); BroadcastMessage("Winner: " + totalWinner.Toon.Name); } @@ -1347,7 +1346,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GameSystem foreach (var player in Players.Values) { player.Revive(player.CheckPointPosition); - player.GeneratePrimaryResource(player.Attributes[GameAttribute.Resource_Max_Total, player.Attributes[GameAttribute.Resource_Type_Primary]]); + player.GeneratePrimaryResource(player.Attributes[GameAttributes.Resource_Max_Total, player.Attributes[GameAttributes.Resource_Type_Primary]]); player.World.BuffManager.AddBuff(player, player, new PowerSystem.Implementations.PVPSkirmishBuff(TickTimer.WaitSeconds(this, 15.0f))); } BroadcastMessage("Round " + CurrentPvPRound + ". Battle will commence in 15 seconds!"); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/QuestManager.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/QuestManager.cs index 39a3f9f..7e59b0c 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/QuestManager.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/GameSystem/QuestManager.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; -using System.Reflection; using D3.Quests; using DiIiS_NA.Core.Extensions; using DiIiS_NA.Core.Helpers.Hash; @@ -22,7 +21,6 @@ using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Map; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Quest; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; -using Actor = DiIiS_NA.GameServer.GSSystem.ActorSystem.Actor; using Monster = DiIiS_NA.GameServer.GSSystem.ActorSystem.Monster; namespace DiIiS_NA.D3_GameServer.GSSystem.GameSystem @@ -337,7 +335,7 @@ namespace DiIiS_NA.D3_GameServer.GSSystem.GameSystem int chance = Game.IsHardcore ? 6 : 2; if (FastRandom.Instance.Next(100) < chance && Game.MonsterLevel >= 70) { - player.World.SpawnRandomEquip(player, player, LootManager.Epic, player.Attributes[GameAttribute.Level]); + player.World.SpawnRandomEquip(player, player, LootManager.Epic, player.Attributes[GameAttributes.Level]); } var toon = player.Toon.DBToon; toon.EventsCompleted++; diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/MonsterAffixGenerator.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/MonsterAffixGenerator.cs index f0791b1..f87a304 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/MonsterAffixGenerator.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/MonsterAffixGenerator.cs @@ -101,17 +101,17 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem float result; if (FormulaScript.Evaluate(effect.Formula.ToArray(), new ItemRandomHelper(FastRandom.Instance.Next()), out result)) { - if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeF) + if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeF) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeF; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeF; if (effect.SNOParam != -1) monster.Attributes[attr, effect.SNOParam] += result; else monster.Attributes[attr] += result; } - else if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeI) + else if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeI) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeI; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeI; if (effect.SNOParam != -1) monster.Attributes[attr, effect.SNOParam] += (int)result; else @@ -187,17 +187,17 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem //var tmpAttr = GameAttribute.Attributes[effect.AttributeId]; //var attrName = tmpAttr.Name; - if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeF) + if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeF) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeF; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeF; if (effect.SNOParam != -1) monster.Attributes[attr, effect.SNOParam] += result; else monster.Attributes[attr] += result; } - else if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeI) + else if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeI) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeI; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeI; if (effect.SNOParam != -1) monster.Attributes[attr, effect.SNOParam] += (int)result; else diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/WorldGenerator.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/WorldGenerator.cs index 4e09d82..dd51e74 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/WorldGenerator.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/GeneratorsSystem/WorldGenerator.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using DiIiS_NA.Core.Extensions; using DiIiS_NA.Core.Logging; using DiIiS_NA.Core.MPQ; @@ -412,7 +410,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem RotationW = 0.9021817f, Attributes = { - [GameAttribute.Team_Override] = 2 + [GameAttributes.Team_Override] = 2 } }; malthaelHire.EnterWorld(new Vector3D(3017.266f, 2851.986f, 24.04533f)); @@ -422,13 +420,13 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem if (Game.CurrentActEnum == ActEnum.OpenWorld) { var townDoor = world.GetActorBySNO(ActorSno._trout_newtristram_gate_town); - townDoor.Attributes[GameAttribute.Team_Override] = 2; - townDoor.Attributes[GameAttribute.Untargetable] = true; - townDoor.Attributes[GameAttribute.NPC_Is_Operatable] = false; - townDoor.Attributes[GameAttribute.Operatable] = false; - townDoor.Attributes[GameAttribute.Operatable_Story_Gizmo] = false; - townDoor.Attributes[GameAttribute.Disabled] = true; - townDoor.Attributes[GameAttribute.Immunity] = true; + townDoor.Attributes[GameAttributes.Team_Override] = 2; + townDoor.Attributes[GameAttributes.Untargetable] = true; + townDoor.Attributes[GameAttributes.NPC_Is_Operatable] = false; + townDoor.Attributes[GameAttributes.Operatable] = false; + townDoor.Attributes[GameAttributes.Operatable_Story_Gizmo] = false; + townDoor.Attributes[GameAttributes.Disabled] = true; + townDoor.Attributes[GameAttributes.Immunity] = true; townDoor.Attributes.BroadcastChangedIfRevealed(); } break; @@ -492,7 +490,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem var leahGhost = world.SpawnMonster(ActorSno._a4dun_aspect_ghost_07, new Vector3D(570f, 570f, 0.1f)) as InteractiveNPC; leahGhost.Conversations.Clear(); leahGhost.Conversations.Add(new ConversationInteraction(198600)); - leahGhost.Attributes[GameAttribute.Conversation_Icon, 0] = 6; + leahGhost.Attributes[GameAttributes.Conversation_Icon, 0] = 6; leahGhost.Attributes.BroadcastChangedIfRevealed(); break; //428f, 836f, -20.3f @@ -500,7 +498,7 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem var zoltunGhost = world.SpawnMonster(ActorSno._a4dun_aspect_ghost_02, new Vector3D(428f, 836f, -2f)) as InteractiveNPC; zoltunGhost.Conversations.Clear(); zoltunGhost.Conversations.Add(new ConversationInteraction(198402)); - zoltunGhost.Attributes[GameAttribute.Conversation_Icon, 0] = 6; + zoltunGhost.Attributes[GameAttributes.Conversation_Icon, 0] = 6; zoltunGhost.Attributes.BroadcastChangedIfRevealed(); break; case WorldSno.a3dun_ruins_frost_city_a_02: @@ -518,13 +516,13 @@ namespace DiIiS_NA.GameServer.GSSystem.GeneratorsSystem //Display only one mystic world.ShowOnlyNumNPC(ActorSno._pt_mystic, 1); var Door = world.GetActorBySNO(ActorSno._trout_newtristram_gate_town); - Door.Attributes[GameAttribute.Team_Override] = 2; - Door.Attributes[GameAttribute.Untargetable] = true; - Door.Attributes[GameAttribute.NPC_Is_Operatable] = false; - Door.Attributes[GameAttribute.Operatable] = false; - Door.Attributes[GameAttribute.Operatable_Story_Gizmo] = false; - Door.Attributes[GameAttribute.Disabled] = true; - Door.Attributes[GameAttribute.Immunity] = true; + Door.Attributes[GameAttributes.Team_Override] = 2; + Door.Attributes[GameAttributes.Untargetable] = true; + Door.Attributes[GameAttributes.NPC_Is_Operatable] = false; + Door.Attributes[GameAttributes.Operatable] = false; + Door.Attributes[GameAttributes.Operatable_Story_Gizmo] = false; + Door.Attributes[GameAttributes.Disabled] = true; + Door.Attributes[GameAttributes.Immunity] = true; Door.Attributes.BroadcastChangedIfRevealed(); break; case WorldSno.p43_ad_cathedral_level_01: //1st floor of the cathedral (D1 mode) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/AffixGenerator.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/AffixGenerator.cs index f84aef0..aa1eb2b 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/AffixGenerator.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/AffixGenerator.cs @@ -271,19 +271,19 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem // - if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeF) + if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeF) { // - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeF; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeF; if (effect.SNOParam != -1) item.Attributes[attr, effect.SNOParam] += result; else item.Attributes[attr] += result; } - else if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeI) + else if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeI) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeI; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeI; if (effect.SNOParam != -1) item.Attributes[attr, effect.SNOParam] += (int)result; else @@ -409,7 +409,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem float maxValue; if (FormulaScript.Evaluate(effect.Formula.ToArray(), item.RandomGenerator, out result, out minValue, out maxValue)) { - var attribute = GameAttribute.Attributes[effect.AttributeId]; + var attribute = GameAttributes.Attributes[effect.AttributeId]; if (effect.AttributeId == 369) continue; //Durability_Max if (effect.AttributeId == 380) //Sockets @@ -422,23 +422,23 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem Scores.Add(score); if (attribute is GameAttributeF) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeF; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeF; if (effect.SNOParam != -1) item.Attributes[attr, effect.SNOParam] += result; else item.Attributes[attr] += result; } - else if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeI) + else if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeI) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeI; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeI; if (effect.SNOParam != -1) item.Attributes[attr, effect.SNOParam] += (int)result; else item.Attributes[attr] += (int)result; } - else if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeB) + else if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeB) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeB; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeB; if (result == 1) item.Attributes[attr] = true; else @@ -469,22 +469,22 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem if (effect.AttributeId <= 0) continue; - var attribute = GameAttribute.Attributes[effect.AttributeId]; + var attribute = GameAttributes.Attributes[effect.AttributeId]; if (attribute.ScriptFunc != null && !attribute.ScriptedAndSettable) continue; if (attribute is GameAttributeF) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeF; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeF; if (effect.SNOParam != -1) target.Attributes[attr, effect.SNOParam] = source.Attributes[attr, effect.SNOParam]; else target.Attributes[attr] = source.Attributes[attr]; } - else if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeI) + else if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeI) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeI; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeI; if (effect.SNOParam != -1) target.Attributes[attr, effect.SNOParam] = source.Attributes[attr, effect.SNOParam]; else diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/FormulaScript.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/FormulaScript.cs index 2a214e9..06625ff 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/FormulaScript.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/FormulaScript.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using System.Linq; using System.Text; using DiIiS_NA.Core.Helpers.Math; -using System.Threading.Tasks; using DiIiS_NA.GameServer.MessageSystem; namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem @@ -249,7 +248,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem { case 0: b.Append("GetAttribute "); - b.Append(GameAttribute.Attributes[numb2].Name); + b.Append(GameAttributes.Attributes[numb2].Name); b.Append(" ("); b.Append(numb2); b.Append("); "); break; case 22: diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/Implementations/Dye.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/Implementations/Dye.cs index fa47a44..77f5b73 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/Implementations/Dye.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/Implementations/Dye.cs @@ -21,8 +21,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem.Implementations //Debug.Assert(target != null); if (target == null) return; - target.Attributes[GameAttribute.DyeType] = Attributes[GameAttribute.DyeType]; - target.DBInventory.DyeType = Attributes[GameAttribute.DyeType]; + target.Attributes[GameAttributes.DyeType] = Attributes[GameAttributes.DyeType]; + target.DBInventory.DyeType = Attributes[GameAttributes.DyeType]; player.World.Game.GameDbSession.SessionUpdate(target.DBInventory); @@ -30,11 +30,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem.Implementations if (GBHandle.GBID == 1866876233 || GBHandle.GBID == 1866876234) return; - if (Attributes[GameAttribute.ItemStackQuantityLo] <= 1) + if (Attributes[GameAttributes.ItemStackQuantityLo] <= 1) player.Inventory.DestroyInventoryItem(this); // No more dyes! else { - UpdateStackCount(--Attributes[GameAttribute.ItemStackQuantityLo]); // Just remove one + UpdateStackCount(--Attributes[GameAttributes.ItemStackQuantityLo]); // Just remove one Attributes.SendChangedMessage(player.InGameClient); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/Item.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/Item.cs index 331171c..111cf8e 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/Item.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/Item.cs @@ -1,12 +1,9 @@ - -using System; +using System; using System.Collections.Generic; using System.Linq; -using System.Reflection; using DiIiS_NA.Core.Logging; using DiIiS_NA.Core.Helpers.Math; using DiIiS_NA.Core.Storage.AccountDataBase.Entities; -using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.GSSystem.PowerSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.ActorSystem; @@ -45,10 +42,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem public bool Unidentified { - get => Attributes[GameAttribute.Unidentified]; + get => Attributes[GameAttributes.Unidentified]; set { - Attributes[GameAttribute.Unidentified] = value; + Attributes[GameAttributes.Unidentified] = value; if (DBInventory is {} dbInventory) dbInventory.Unidentified = value; } } @@ -88,8 +85,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem public override int Quality { - get => Attributes[GameAttribute.Item_Quality_Level]; - set => Attributes[GameAttribute.Item_Quality_Level] = value; + get => Attributes[GameAttributes.Item_Quality_Level]; + set => Attributes[GameAttributes.Item_Quality_Level] = value; } public SNOHandle SnoFlippyActory => @@ -137,19 +134,19 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem GBHandle.GBID = definition.Hash; SetInitialValues(definition); Attributes.FillBySerialized(serializedGameAttributeMap); - if (Attributes[GameAttribute.Seed] == 0) + if (Attributes[GameAttributes.Seed] == 0) { - Attributes[GameAttribute.Seed] = FastRandom.Instance.Next(); + Attributes[GameAttributes.Seed] = FastRandom.Instance.Next(); //this.Attributes[GameAttribute.Seed] = 0; - Attributes[GameAttribute.Item_Quality_Level] = 1; - Attributes[GameAttribute.TeamID] = 0; + Attributes[GameAttributes.Item_Quality_Level] = 1; + Attributes[GameAttributes.TeamID] = 0; } //for (int i = 50; i < 60; i++) //Attributes[GameAttribute.Requirement, 57] = 10; - Attributes[GameAttribute.ItemStackQuantityLo] = count; - Attributes[GameAttribute.Loot_2_0_Drop] = true; + Attributes[GameAttributes.ItemStackQuantityLo] = count; + Attributes[GameAttributes.Loot_2_0_Drop] = true; AffixList.Clear(); AffixList.AddRange(affixList); //this.Attributes[GameAttribute.EnchantAffix] = -758203990; @@ -165,18 +162,18 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem ? definition.RequiredLevel - 1 : definition.RequiredLevel; var level = Math.Max(AffixList.Any() ? AffixList.Select(a => a.ItemLevel).Max() : 0, reqLevel); - Attributes[GameAttribute.Requirement, 57] = - Math.Max(level - Attributes[GameAttribute.Item_Level_Requirement_Reduction], 0); + Attributes[GameAttributes.Requirement, 57] = + Math.Max(level - Attributes[GameAttributes.Item_Level_Requirement_Reduction], 0); } if (AffixList.Count > 0) { - if (Math.Abs(Attributes[GameAttribute.Requirement, 57] - AffixList[0].Definition.OverrideLevelReq) > 0.001 && + if (Math.Abs(Attributes[GameAttributes.Requirement, 57] - AffixList[0].Definition.OverrideLevelReq) > 0.001 && AffixList[0].Definition.OverrideLevelReq != 0) - Attributes[GameAttribute.Requirement, 57] = AffixList[0].Definition.OverrideLevelReq; + Attributes[GameAttributes.Requirement, 57] = AffixList[0].Definition.OverrideLevelReq; foreach (var affix in AffixList) - if (affix.Definition.OverrideLevelReq > Attributes[GameAttribute.Requirement, 57]) - Attributes[GameAttribute.Requirement, 57] = affix.Definition.OverrideLevelReq; + if (affix.Definition.OverrideLevelReq > Attributes[GameAttributes.Requirement, 57]) + Attributes[GameAttributes.Requirement, 57] = affix.Definition.OverrideLevelReq; } //*/ /* @@ -208,7 +205,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem NameSNO = ActorSno.__NONE; Field10 = 0x00; - Attributes[GameAttribute.TeamID] = 0; + Attributes[GameAttributes.TeamID] = 0; } public Item(World world, ItemTable definition, int forceQualityLevel = -1, bool crafted = false, int seed = -1) @@ -217,63 +214,63 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem GBHandle.GBID = definition.Hash; SetInitialValues(definition); ItemHasChanges = true; - Attributes[GameAttribute.IsCrafted] = crafted; - Attributes[GameAttribute.Item_Quality_Level] = 1; + Attributes[GameAttributes.IsCrafted] = crafted; + Attributes[GameAttributes.Item_Quality_Level] = 1; - Attributes[GameAttribute.Loot_2_0_Drop] = true; + Attributes[GameAttributes.Loot_2_0_Drop] = true; if (IsArmor(ItemType) || IsWeapon(ItemType) || IsOffhand(ItemType) || IsAccessory(ItemType) || IsShard(ItemType)) - Attributes[GameAttribute.Item_Quality_Level] = RandomHelper.Next(8); - if (ItemType.Usable.HasFlag(ItemFlags.AtLeastMagical) && Attributes[GameAttribute.Item_Quality_Level] < 3) - Attributes[GameAttribute.Item_Quality_Level] = 3; + Attributes[GameAttributes.Item_Quality_Level] = RandomHelper.Next(8); + if (ItemType.Usable.HasFlag(ItemFlags.AtLeastMagical) && Attributes[GameAttributes.Item_Quality_Level] < 3) + Attributes[GameAttributes.Item_Quality_Level] = 3; if (definition.Name.ToLower().Contains("unique") || definition.Quality == ItemTable.ItemQuality.Legendary) - Attributes[GameAttribute.Item_Quality_Level] = 9; + Attributes[GameAttributes.Item_Quality_Level] = 9; if (forceQualityLevel > -1) - Attributes[GameAttribute.Item_Quality_Level] = forceQualityLevel; - if (definition.SNOSet != -1) Attributes[GameAttribute.Item_Quality_Level] = 9; + Attributes[GameAttributes.Item_Quality_Level] = forceQualityLevel; + if (definition.SNOSet != -1) Attributes[GameAttributes.Item_Quality_Level] = 9; if (ItemDefinition.Name.ToLower().Contains("unique_gem")) { - Attributes[GameAttribute.Item_Quality_Level] = 9; - if (!Attributes.Contains(GameAttribute.Jewel_Rank)) - Attributes[GameAttribute.Jewel_Rank] = 1; + Attributes[GameAttributes.Item_Quality_Level] = 9; + if (!Attributes.Contains(GameAttributes.Jewel_Rank)) + Attributes[GameAttributes.Jewel_Rank] = 1; //Attributes[GameAttribute.Jewel_Rank] = 1; } - if (ItemDefinition.Name.ToLower().Contains("norm_season")) Attributes[GameAttribute.Item_Quality_Level] = 9; + if (ItemDefinition.Name.ToLower().Contains("norm_season")) Attributes[GameAttributes.Item_Quality_Level] = 9; if (ItemDefinition.Name.ToLower().StartsWith("p71_ethereal")) { - Attributes[GameAttribute.Item_Quality_Level] = 9; - Attributes[GameAttribute.Attacks_Per_Second_Item] += 1.1f; + Attributes[GameAttributes.Item_Quality_Level] = 9; + Attributes[GameAttributes.Attacks_Per_Second_Item] += 1.1f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 15 + World.Game.InitialMonsterLevel * 1.7f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 15 + World.Game.InitialMonsterLevel * 1.7f; if (World.Game.InitialMonsterLevel > 70) - Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 20f; + Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 20f; else if (World.Game.InitialMonsterLevel > 60) - Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 14f; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 15; + Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 14f; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 15; } - Attributes[GameAttribute.ItemStackQuantityLo] = 1; + Attributes[GameAttributes.ItemStackQuantityLo] = 1; if (seed == -1) - Attributes[GameAttribute.Seed] = FastRandom.Instance.Next(); //unchecked((int)2286800181); + Attributes[GameAttributes.Seed] = FastRandom.Instance.Next(); //unchecked((int)2286800181); else - Attributes[GameAttribute.Seed] = seed; + Attributes[GameAttributes.Seed] = seed; //Attributes[GameAttribute.Seed] = 0; //Attributes[GameAttribute.Item_Quality_Level] = 1; - RandomGenerator = new ItemRandomHelper(Attributes[GameAttribute.Seed]); + RandomGenerator = new ItemRandomHelper(Attributes[GameAttributes.Seed]); RandomGenerator.Next(); if (IsArmor(ItemType)) { if (!crafted) RandomGenerator.Next(); - if (Attributes[GameAttribute.Item_Quality_Level] >= 5 && - Attributes[GameAttribute.Item_Quality_Level] <= 7) + if (Attributes[GameAttributes.Item_Quality_Level] >= 5 && + Attributes[GameAttributes.Item_Quality_Level] <= 7) RandomGenerator.Next(); } @@ -292,8 +289,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem ApplyAttributeSpecifier(definition); var affixNumber = 1; - if (Attributes[GameAttribute.Item_Quality_Level] >= 3) - affixNumber = Attributes[GameAttribute.Item_Quality_Level] - 2; + if (Attributes[GameAttributes.Item_Quality_Level] >= 3) + affixNumber = Attributes[GameAttributes.Item_Quality_Level] - 2; if (ItemDefinition.Name.Contains("Shard")) affixNumber = 1; @@ -301,15 +298,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem affixNumber = 3; if (!crafted) - if (Attributes[GameAttribute.Item_Quality_Level] > 1) + if (Attributes[GameAttributes.Item_Quality_Level] > 1) AffixGenerator.Generate(this, affixNumber); if (IsShard(ItemType)) - Attributes[GameAttribute.Item_Quality_Level] = 1; + Attributes[GameAttributes.Item_Quality_Level] = 1; - Attributes[GameAttribute.Item_Quality_Level] = Math.Min(Attributes[GameAttribute.Item_Quality_Level], 9); - Attributes[GameAttribute.Durability_Cur] = Attributes[GameAttribute.Durability_Max]; + Attributes[GameAttributes.Item_Quality_Level] = Math.Min(Attributes[GameAttributes.Item_Quality_Level], 9); + Attributes[GameAttributes.Durability_Cur] = Attributes[GameAttributes.Durability_Max]; /* if (Attributes[GameAttribute.Item_Quality_Level] > 8) { @@ -325,28 +322,28 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem //if (Attributes[GameAttribute.Item_Quality_Level] > 6) // this.Unidentified = true; #endif - if (Attributes[GameAttribute.Item_Quality_Level] == 9) Attributes[GameAttribute.MinimapActive] = true; + if (Attributes[GameAttributes.Item_Quality_Level] == 9) Attributes[GameAttributes.MinimapActive] = true; if (IsArmor(ItemType) || IsWeapon(ItemType) || IsOffhand(ItemType) || (IsPotion(ItemType) && ItemDefinition.Name.Contains("Legendary")) || IsAccessory(ItemType)) { - var a = Attributes[GameAttribute.Requirement, 57]; + var a = Attributes[GameAttributes.Requirement, 57]; var reqLevel = definition.RequiredLevel % 10 != 0 ? definition.RequiredLevel - 1 : definition.RequiredLevel; var level = Math.Max(AffixList.Any() ? AffixList.Select(a => a.ItemLevel).Max() : 0, reqLevel); - Attributes[GameAttribute.Requirement, 57] = - Math.Max(level - Attributes[GameAttribute.Item_Level_Requirement_Reduction], 0); - a = Attributes[GameAttribute.Requirement, 57]; + Attributes[GameAttributes.Requirement, 57] = + Math.Max(level - Attributes[GameAttributes.Item_Level_Requirement_Reduction], 0); + a = Attributes[GameAttributes.Requirement, 57]; } // Hard rewrite of the required level for legendary weapons, in case of its bug on 70 lvls. - if (Attributes[GameAttribute.Item_Quality_Level] > 8) - if (Attributes[GameAttribute.Requirement, 57] == 0) - Attributes[GameAttribute.Item_Level_Requirement_Override] = 1; + if (Attributes[GameAttributes.Item_Quality_Level] > 8) + if (Attributes[GameAttributes.Requirement, 57] == 0) + Attributes[GameAttributes.Item_Level_Requirement_Override] = 1; else - Attributes[GameAttribute.Item_Level_Requirement_Override] = - (int)Attributes[GameAttribute.Requirement, 57]; + Attributes[GameAttributes.Item_Level_Requirement_Override] = + (int)Attributes[GameAttributes.Requirement, 57]; if (ItemDefinition.Name.ToLower().StartsWith("p71_ethereal")) AffixGenerator.AddAffix(this, 1661455571, true); //1661455571 @@ -357,7 +354,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem { Unidentified = false; // DBInventory.Unidentified = false; - Attributes[GameAttribute.Unidentified] = false; + Attributes[GameAttributes.Unidentified] = false; Owner.World.Game.GameDbSession.SessionUpdate(DBInventory); if (Owner is Player player) @@ -378,11 +375,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem { if (definition.WeaponDamageMin > 0) { - Attributes[GameAttribute.Attacks_Per_Second_Item] += definition.AttacksPerSecond; - Attributes[GameAttribute.Attacks_Per_Second_Item_Percent] = 0; - Attributes[GameAttribute.Attacks_Per_Second_Item_Bonus] = 0; - Attributes[GameAttribute.Damage_Weapon_Min, 0] += definition.WeaponDamageMin; - Attributes[GameAttribute.Damage_Weapon_Delta, 0] += definition.WeaponDamageDelta; + Attributes[GameAttributes.Attacks_Per_Second_Item] += definition.AttacksPerSecond; + Attributes[GameAttributes.Attacks_Per_Second_Item_Percent] = 0; + Attributes[GameAttributes.Attacks_Per_Second_Item_Bonus] = 0; + Attributes[GameAttributes.Damage_Weapon_Min, 0] += definition.WeaponDamageMin; + Attributes[GameAttributes.Damage_Weapon_Delta, 0] += definition.WeaponDamageDelta; } var hash = definition.Hash; @@ -391,16 +388,16 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem if (UniqueItems.UniqueItemStats.ContainsKey(hash)) { - Attributes[GameAttribute.Attacks_Per_Second_Item] += UniqueItems.GetDPS(hash); - Attributes[GameAttribute.Damage_Weapon_Min, 0] += UniqueItems.GetWeaponDamageMin(hash); - Attributes[GameAttribute.Damage_Weapon_Delta, 0] += UniqueItems.GetWeaponDamageDelta(hash); + Attributes[GameAttributes.Attacks_Per_Second_Item] += UniqueItems.GetDPS(hash); + Attributes[GameAttributes.Damage_Weapon_Min, 0] += UniqueItems.GetWeaponDamageMin(hash); + Attributes[GameAttributes.Damage_Weapon_Delta, 0] += UniqueItems.GetWeaponDamageDelta(hash); if (IsWeapon(ItemType)) { - if (Attributes[GameAttribute.Damage_Weapon_Min, 0] == 0) - Attributes[GameAttribute.Damage_Weapon_Min, 0] = 34; - if (Attributes[GameAttribute.Damage_Weapon_Delta, 0] == 0) - Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 34; + if (Attributes[GameAttributes.Damage_Weapon_Min, 0] == 0) + Attributes[GameAttributes.Damage_Weapon_Min, 0] = 34; + if (Attributes[GameAttributes.Damage_Weapon_Delta, 0] == 0) + Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 34; } var scaleCapMin = 0f; @@ -498,10 +495,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem var ratio = (float)Math.Pow(definition.ItemLevel, 2f) / 4900f; if (ratio < 0.01f) ratio = 0.01f; if (ratio > 1f) ratio = 1f; - Attributes[GameAttribute.Damage_Weapon_Min, 0] += - Math.Abs(scaleCapMin * ratio - Attributes[GameAttribute.Damage_Weapon_Min, 0]); - Attributes[GameAttribute.Damage_Weapon_Delta, 0] += - Math.Abs(scaleCapDelta * ratio - Attributes[GameAttribute.Damage_Weapon_Delta, 0]); + Attributes[GameAttributes.Damage_Weapon_Min, 0] += + Math.Abs(scaleCapMin * ratio - Attributes[GameAttributes.Damage_Weapon_Min, 0]); + Attributes[GameAttributes.Damage_Weapon_Delta, 0] += + Math.Abs(scaleCapDelta * ratio - Attributes[GameAttributes.Damage_Weapon_Delta, 0]); } } } @@ -510,11 +507,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem { if (definition.Armor > 0) { - Attributes[GameAttribute.Armor_Item] += definition.Armor; + Attributes[GameAttributes.Armor_Item] += definition.Armor; //Attributes[GameAttribute.Armor_Bonus_Item] = 0; //Attributes[GameAttribute.Armor_Item_Percent] = 0; - Attributes[GameAttribute.Armor] += definition.Armor; - var armorItemTotal = Attributes[GameAttribute.Armor_Item_Total]; + Attributes[GameAttributes.Armor] += definition.Armor; + var armorItemTotal = Attributes[GameAttributes.Armor_Item_Total]; } var hash = definition.Hash; @@ -523,24 +520,24 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem if (UniqueItems.UniqueItemStats.ContainsKey(hash)) { - Attributes[GameAttribute.Armor_Item] += UniqueItems.GetArmor(hash); + Attributes[GameAttributes.Armor_Item] += UniqueItems.GetArmor(hash); //Unique items level scaling if (IsArmor(ItemType)) - if (Attributes[GameAttribute.Armor_Item] == 0) - Attributes[GameAttribute.Armor_Item] = 30; + if (Attributes[GameAttributes.Armor_Item] == 0) + Attributes[GameAttributes.Armor_Item] = 30; - if (Attributes[GameAttribute.Armor_Item] < 100) - Attributes[GameAttribute.Armor_Item] += definition.ItemLevel * 6; - else if (Attributes[GameAttribute.Armor_Item] < 200) - Attributes[GameAttribute.Armor_Item] += definition.ItemLevel * 5; - else if (Attributes[GameAttribute.Armor_Item] < 300) - Attributes[GameAttribute.Armor_Item] += definition.ItemLevel * 4; - else if (Attributes[GameAttribute.Armor_Item] < 400) - Attributes[GameAttribute.Armor_Item] += definition.ItemLevel * 3; - else if (Attributes[GameAttribute.Armor_Item] < 500) - Attributes[GameAttribute.Armor_Item] += definition.ItemLevel * 2; - else if (Attributes[GameAttribute.Armor_Item] < 600) - Attributes[GameAttribute.Armor_Item] += definition.ItemLevel; + if (Attributes[GameAttributes.Armor_Item] < 100) + Attributes[GameAttributes.Armor_Item] += definition.ItemLevel * 6; + else if (Attributes[GameAttributes.Armor_Item] < 200) + Attributes[GameAttributes.Armor_Item] += definition.ItemLevel * 5; + else if (Attributes[GameAttributes.Armor_Item] < 300) + Attributes[GameAttributes.Armor_Item] += definition.ItemLevel * 4; + else if (Attributes[GameAttributes.Armor_Item] < 400) + Attributes[GameAttributes.Armor_Item] += definition.ItemLevel * 3; + else if (Attributes[GameAttributes.Armor_Item] < 500) + Attributes[GameAttributes.Armor_Item] += definition.ItemLevel * 2; + else if (Attributes[GameAttributes.Armor_Item] < 600) + Attributes[GameAttributes.Armor_Item] += definition.ItemLevel; if (definition.ItemTypesGBID == 332825721 || definition.ItemTypesGBID == 602099538) //Shield and CruShield @@ -550,9 +547,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem var ratio = (float)Math.Pow(definition.ItemLevel, 2f) / 4900f; if (ratio < 0.01f) ratio = 0.01f; if (ratio > 1f) ratio = 1f; - Attributes[GameAttribute.Block_Amount_Item_Min] += - Math.Abs(scaleCapMin * ratio - Attributes[GameAttribute.Block_Amount_Item_Min, 0]); - Attributes[GameAttribute.Block_Amount_Item_Delta] += Math.Abs(scaleCapDelta * ratio - Attributes[GameAttribute.Block_Amount_Item_Delta, 0]); + Attributes[GameAttributes.Block_Amount_Item_Min] += + Math.Abs(scaleCapMin * ratio - Attributes[GameAttributes.Block_Amount_Item_Min, 0]); + Attributes[GameAttributes.Block_Amount_Item_Delta] += Math.Abs(scaleCapDelta * ratio - Attributes[GameAttributes.Block_Amount_Item_Delta, 0]); } } } @@ -562,21 +559,21 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem if (definition.BaseDurability > 0) { var durability = definition.BaseDurability * 2 + RandomHelper.Next(definition.DurabilityVariance); - Attributes[GameAttribute.Durability_Max] = durability; - Attributes[GameAttribute.Durability_Cur] = durability; + Attributes[GameAttributes.Durability_Max] = durability; + Attributes[GameAttributes.Durability_Cur] = durability; } } public void UpdateDurability(int newDurability) { - Attributes[GameAttribute.Durability_Cur] = newDurability; + Attributes[GameAttributes.Durability_Cur] = newDurability; DBInventory.Durability = newDurability; Owner.World.Game.GameDbSession.SessionUpdate(DBInventory); } public void UpdateTransmog(int newTransmogGBID) { - Attributes[GameAttribute.TransmogGBID] = newTransmogGBID; + Attributes[GameAttributes.TransmogGBID] = newTransmogGBID; DBInventory.TransmogGBID = newTransmogGBID; Owner.World.Game.GameDbSession.SessionUpdate(DBInventory); } @@ -592,7 +589,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem if (newCount > 0) { if (DBInventory == null) return; - Attributes[GameAttribute.ItemStackQuantityLo] = newCount; + Attributes[GameAttributes.ItemStackQuantityLo] = newCount; Attributes.SendChangedMessage((Owner as Player).InGameClient); DBInventory.Count = newCount; @@ -602,13 +599,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem private void ApplySkills(ItemTable definition) { - if (definition.SNOSkill0 != -1) Attributes[GameAttribute.Skill, definition.SNOSkill0] = 1; + if (definition.SNOSkill0 != -1) Attributes[GameAttributes.Skill, definition.SNOSkill0] = 1; - if (definition.SNOSkill1 != -1) Attributes[GameAttribute.Skill, definition.SNOSkill1] = 1; + if (definition.SNOSkill1 != -1) Attributes[GameAttributes.Skill, definition.SNOSkill1] = 1; - if (definition.SNOSkill2 != -1) Attributes[GameAttribute.Skill, definition.SNOSkill2] = 1; + if (definition.SNOSkill2 != -1) Attributes[GameAttributes.Skill, definition.SNOSkill2] = 1; - if (definition.SNOSkill3 != -1) Attributes[GameAttribute.Skill, definition.SNOSkill3] = 1; + if (definition.SNOSkill3 != -1) Attributes[GameAttributes.Skill, definition.SNOSkill3] = 1; } private void ApplyAttributeSpecifier(ItemTable definition) @@ -620,17 +617,17 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem { //Logger.Debug("Randomized value for attribute " + GameAttribute.Attributes[effect.AttributeId].Name + " is " + result); - if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeF) + if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeF) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeF; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeF; if (effect.SNOParam != -1) Attributes[attr, effect.SNOParam] += result; else Attributes[attr] += result; } - else if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeI) + else if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeI) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeI; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeI; if (effect.SNOParam != -1) Attributes[attr, effect.SNOParam] += (int)result; else @@ -645,10 +642,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem { return new VisualItem() { - GbId = Attributes[GameAttribute.TransmogGBID] == -1 + GbId = Attributes[GameAttributes.TransmogGBID] == -1 ? GBHandle.GBID - : Attributes[GameAttribute.TransmogGBID], - DyeType = Attributes[GameAttribute.DyeType], + : Attributes[GameAttributes.TransmogGBID], + DyeType = Attributes[GameAttributes.DyeType], ItemEffectType = 0, //Mooege.Common.Helpers.Math.FastRandom.Instance.Next(1, 14), EffectLevel = -1 //Mooege.Common.Helpers.Math.FastRandom.Instance.Next(1, 30) }; @@ -658,10 +655,10 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem public D3.Hero.VisualItem GetVisualItem() { var visualItem = D3.Hero.VisualItem.CreateBuilder() - .SetGbid(Attributes[GameAttribute.TransmogGBID] == -1 + .SetGbid(Attributes[GameAttributes.TransmogGBID] == -1 ? GBHandle.GBID - : Attributes[GameAttribute.TransmogGBID]) - .SetDyeType(Attributes[GameAttribute.DyeType]) + : Attributes[GameAttributes.TransmogGBID]) + .SetDyeType(Attributes[GameAttributes.DyeType]) .SetEffectLevel(0) .SetItemEffectType(-1) .Build(); @@ -912,7 +909,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem { if (IsPotion(ItemType)) //if item is health potion { - if (player.Attributes[GameAttribute.Hitpoints_Cur] == player.Attributes[GameAttribute.Hitpoints_Max]) + if (player.Attributes[GameAttributes.Hitpoints_Cur] == player.Attributes[GameAttributes.Hitpoints_Max]) return; player.World.PowerManager.RunPower(player, 30211); @@ -951,13 +948,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem return; } - if (Attributes[GameAttribute.ItemStackQuantityLo] <= 1) + if (Attributes[GameAttributes.ItemStackQuantityLo] <= 1) { player.Inventory.DestroyInventoryItem(this); // No more recipes! } else { - UpdateStackCount(--Attributes[GameAttribute.ItemStackQuantityLo]); // Just remove one + UpdateStackCount(--Attributes[GameAttributes.ItemStackQuantityLo]); // Just remove one Attributes.SendChangedMessage(player.InGameClient); } @@ -1237,9 +1234,9 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem if (IsDye(ItemType)) //if item is dye { if (target == null) return; - target.Attributes[GameAttribute.DyeType] = Attributes[GameAttribute.DyeType]; + target.Attributes[GameAttributes.DyeType] = Attributes[GameAttributes.DyeType]; target.Attributes.BroadcastChangedIfRevealed(); - target.DBInventory.DyeType = Attributes[GameAttribute.DyeType]; + target.DBInventory.DyeType = Attributes[GameAttributes.DyeType]; player.World.Game.GameDbSession.SessionUpdate(target.DBInventory); @@ -1248,8 +1245,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem player.GrantAchievement(74987243307154); var colors = new List(player.Inventory.GetEquippedItems() - .Where(i => i.Attributes[GameAttribute.DyeType] > 0) - .Select(i => i.Attributes[GameAttribute.DyeType])); + .Where(i => i.Attributes[GameAttributes.DyeType] > 0) + .Select(i => i.Attributes[GameAttributes.DyeType])); if (colors.Count >= 6) { if (new HashSet(colors).Count == 1) @@ -1317,13 +1314,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem if (GBHandle.GBID == 1866876233 || GBHandle.GBID == 1866876234) return; //CE dyes - if (Attributes[GameAttribute.ItemStackQuantityLo] <= 1) + if (Attributes[GameAttributes.ItemStackQuantityLo] <= 1) { player.Inventory.DestroyInventoryItem(this); // No more dyes! } else { - UpdateStackCount(--Attributes[GameAttribute.ItemStackQuantityLo]); // Just remove one + UpdateStackCount(--Attributes[GameAttributes.ItemStackQuantityLo]); // Just remove one Attributes.SendChangedMessage(player.InGameClient); } @@ -1337,23 +1334,23 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem { if (player.CurrentWingsPowerId != -1 && player.CurrentWingsPowerId != powerId) //turning off another wings { - player.Attributes[GameAttribute.Buff_Exclusive_Type_Active, player.CurrentWingsPowerId] = false; - player.Attributes[GameAttribute.Power_Buff_0_Visual_Effect_None, player.CurrentWingsPowerId] = false; - player.Attributes[GameAttribute.Buff_Icon_Start_Tick0, player.CurrentWingsPowerId] = 0; - player.Attributes[GameAttribute.Buff_Icon_End_Tick0, player.CurrentWingsPowerId] = 0; - player.Attributes[GameAttribute.Buff_Icon_Count0, player.CurrentWingsPowerId] = 0; + player.Attributes[GameAttributes.Buff_Exclusive_Type_Active, player.CurrentWingsPowerId] = false; + player.Attributes[GameAttributes.Power_Buff_0_Visual_Effect_None, player.CurrentWingsPowerId] = false; + player.Attributes[GameAttributes.Buff_Icon_Start_Tick0, player.CurrentWingsPowerId] = 0; + player.Attributes[GameAttributes.Buff_Icon_End_Tick0, player.CurrentWingsPowerId] = 0; + player.Attributes[GameAttributes.Buff_Icon_Count0, player.CurrentWingsPowerId] = 0; player.CurrentWingsPowerId = -1; } - var activated = player.Attributes[GameAttribute.Buff_Exclusive_Type_Active, powerId] == true; + var activated = player.Attributes[GameAttributes.Buff_Exclusive_Type_Active, powerId] == true; player.CurrentWingsPowerId = activated ? -1 : powerId; - player.Attributes[GameAttribute.Buff_Exclusive_Type_Active, powerId] = !activated; - player.Attributes[GameAttribute.Power_Buff_0_Visual_Effect_None, powerId] = !activated; - player.Attributes[GameAttribute.Buff_Icon_Start_Tick0, powerId] = 0; - player.Attributes[GameAttribute.Buff_Icon_End_Tick0, powerId] = activated ? 0 : 100; - player.Attributes[GameAttribute.Buff_Icon_Count0, powerId] = activated ? 0 : 1; + player.Attributes[GameAttributes.Buff_Exclusive_Type_Active, powerId] = !activated; + player.Attributes[GameAttributes.Power_Buff_0_Visual_Effect_None, powerId] = !activated; + player.Attributes[GameAttributes.Buff_Icon_Start_Tick0, powerId] = 0; + player.Attributes[GameAttributes.Buff_Icon_End_Tick0, powerId] = activated ? 0 : 100; + player.Attributes[GameAttributes.Buff_Icon_Count0, powerId] = activated ? 0 : 1; player.Attributes.BroadcastChangedIfRevealed(); player.Inventory.SendVisualInventory(player); var dbToon = player.Toon.DBToon; diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/DefaultAttributeCreator.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/DefaultAttributeCreator.cs index 53a84f0..5cb2fc9 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/DefaultAttributeCreator.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/DefaultAttributeCreator.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using DiIiS_NA.Core.Helpers; -using DiIiS_NA.Core.Helpers.Math; +using DiIiS_NA.Core.Helpers.Math; using DiIiS_NA.GameServer.MessageSystem; namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem.ItemCreation @@ -13,8 +7,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem.ItemCreation { public void CreateAttributes(Item item) { - item.Attributes[GameAttribute.Item_Quality_Level] = 1; - item.Attributes[GameAttribute.Seed] = RandomHelper.Next(); //unchecked((int)2286800181); + item.Attributes[GameAttributes.Item_Quality_Level] = 1; + item.Attributes[GameAttributes.Seed] = RandomHelper.Next(); //unchecked((int)2286800181); } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/PotionAttributeCreator.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/PotionAttributeCreator.cs index 516dabd..64bdd4b 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/PotionAttributeCreator.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/PotionAttributeCreator.cs @@ -1,5 +1,4 @@ -using DiIiS_NA.Core.Helpers.Math; -using DiIiS_NA.GameServer.MessageSystem; +using DiIiS_NA.GameServer.MessageSystem; namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem.ItemCreation { @@ -7,8 +6,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem.ItemCreation { public void CreateAttributes(Item item) { - item.Attributes[GameAttribute.Hitpoints_Granted] = 250f; - item.Attributes[GameAttribute.ItemStackQuantityLo] = 1; + item.Attributes[GameAttributes.Hitpoints_Granted] = 250f; + item.Attributes[GameAttributes.ItemStackQuantityLo] = 1; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/WeaponAttributeCreator.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/WeaponAttributeCreator.cs index 0f993b3..babf811 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/WeaponAttributeCreator.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemCreation/WeaponAttributeCreator.cs @@ -7,8 +7,8 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem.ItemCreation { public void CreateAttributes(Item item) { - item.Attributes[GameAttribute.Skill, 0x7780] = 1; - item.Attributes[GameAttribute.IdentifyCost] = 1; + item.Attributes[GameAttributes.Skill, 0x7780] = 1; + item.Attributes[GameAttributes.IdentifyCost] = 1; const float heroAttackspeed = 1.2f; // musst be calculated by Skills + passives + affixes + ... const float heroMaxDmg = 50f; // musst be calculated by Skills + passives + affixes + ... @@ -19,42 +19,42 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem.ItemCreation var attackspeed = (float)(RandomHelper.NextDouble() + 0.5); var minWeaponDmg = weaponDmg - ((float)(RandomHelper.NextDouble() * 20) + 10); - item.Attributes[GameAttribute.Attacks_Per_Second_Total] = attackspeed * heroAttackspeed; - item.Attributes[GameAttribute.Attacks_Per_Second_Item] = attackspeed; - item.Attributes[GameAttribute.Attacks_Per_Second_Item_Subtotal] = attackspeed; - item.Attributes[GameAttribute.Attacks_Per_Second_Item_Total] = attackspeed; - item.Attributes[GameAttribute.Attacks_Per_Second_Item_MainHand] = attackspeed; - item.Attributes[GameAttribute.Attacks_Per_Second_Item_OffHand] = attackspeed + 1; - item.Attributes[GameAttribute.Attacks_Per_Second_Item_Total_MainHand] = attackspeed; - item.Attributes[GameAttribute.Attacks_Per_Second_Item_Total_OffHand] = attackspeed + 1; + item.Attributes[GameAttributes.Attacks_Per_Second_Total] = attackspeed * heroAttackspeed; + item.Attributes[GameAttributes.Attacks_Per_Second_Item] = attackspeed; + item.Attributes[GameAttributes.Attacks_Per_Second_Item_Subtotal] = attackspeed; + item.Attributes[GameAttributes.Attacks_Per_Second_Item_Total] = attackspeed; + item.Attributes[GameAttributes.Attacks_Per_Second_Item_MainHand] = attackspeed; + item.Attributes[GameAttributes.Attacks_Per_Second_Item_OffHand] = attackspeed + 1; + item.Attributes[GameAttributes.Attacks_Per_Second_Item_Total_MainHand] = attackspeed; + item.Attributes[GameAttributes.Attacks_Per_Second_Item_Total_OffHand] = attackspeed + 1; - item.Attributes[GameAttribute.Damage_Weapon_Min, 0] = minWeaponDmg; - item.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0] = minWeaponDmg + heroMinDmg; - item.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0xFFFFF] = minWeaponDmg + heroMinDmg; - item.Attributes[GameAttribute.Damage_Weapon_Min_Total_All] = minWeaponDmg + heroMinDmg; - item.Attributes[GameAttribute.Damage_Weapon_Min_Total_MainHand, 0] = minWeaponDmg + heroMinDmg; - item.Attributes[GameAttribute.Damage_Weapon_Min_Total_MainHand, 0xFFFFF] = minWeaponDmg + heroMinDmg; - item.Attributes[GameAttribute.Damage_Weapon_Min_Total_OffHand, 0] = (minWeaponDmg + heroMinDmg) * offhandMultiplier; - item.Attributes[GameAttribute.Damage_Weapon_Min_Total_OffHand, 0xFFFFF] = (minWeaponDmg + heroMinDmg) * offhandMultiplier; + item.Attributes[GameAttributes.Damage_Weapon_Min, 0] = minWeaponDmg; + item.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0] = minWeaponDmg + heroMinDmg; + item.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0xFFFFF] = minWeaponDmg + heroMinDmg; + item.Attributes[GameAttributes.Damage_Weapon_Min_Total_All] = minWeaponDmg + heroMinDmg; + item.Attributes[GameAttributes.Damage_Weapon_Min_Total_MainHand, 0] = minWeaponDmg + heroMinDmg; + item.Attributes[GameAttributes.Damage_Weapon_Min_Total_MainHand, 0xFFFFF] = minWeaponDmg + heroMinDmg; + item.Attributes[GameAttributes.Damage_Weapon_Min_Total_OffHand, 0] = (minWeaponDmg + heroMinDmg) * offhandMultiplier; + item.Attributes[GameAttributes.Damage_Weapon_Min_Total_OffHand, 0xFFFFF] = (minWeaponDmg + heroMinDmg) * offhandMultiplier; - item.Attributes[GameAttribute.Damage_Weapon_Max, 0] = weaponDmg; - item.Attributes[GameAttribute.Damage_Weapon_Max, 0xFFFFF] = weaponDmg; - item.Attributes[GameAttribute.Damage_Weapon_Max_Total, 0] = weaponDmg + heroMaxDmg; - item.Attributes[GameAttribute.Damage_Weapon_Max_Total, 0xFFFFF] = weaponDmg + heroMaxDmg; + item.Attributes[GameAttributes.Damage_Weapon_Max, 0] = weaponDmg; + item.Attributes[GameAttributes.Damage_Weapon_Max, 0xFFFFF] = weaponDmg; + item.Attributes[GameAttributes.Damage_Weapon_Max_Total, 0] = weaponDmg + heroMaxDmg; + item.Attributes[GameAttributes.Damage_Weapon_Max_Total, 0xFFFFF] = weaponDmg + heroMaxDmg; - item.Attributes[GameAttribute.Damage_Weapon_Delta, 0] = weaponDmg - minWeaponDmg; - item.Attributes[GameAttribute.Damage_Weapon_Delta_SubTotal, 0] = (weaponDmg + heroMaxDmg) - (minWeaponDmg + heroMinDmg); - item.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] = (weaponDmg + heroMaxDmg) - (minWeaponDmg + heroMinDmg); - item.Attributes[GameAttribute.Damage_Weapon_Delta_Total_All] = (weaponDmg + heroMaxDmg) - (minWeaponDmg + heroMinDmg); - item.Attributes[GameAttribute.Damage_Weapon_Delta_Total_MainHand, 0] = (weaponDmg + heroMaxDmg) - (minWeaponDmg + heroMinDmg); - item.Attributes[GameAttribute.Damage_Weapon_Delta_Total_OffHand, 0] = 3.051758E-05f; + item.Attributes[GameAttributes.Damage_Weapon_Delta, 0] = weaponDmg - minWeaponDmg; + item.Attributes[GameAttributes.Damage_Weapon_Delta_SubTotal, 0] = (weaponDmg + heroMaxDmg) - (minWeaponDmg + heroMinDmg); + item.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] = (weaponDmg + heroMaxDmg) - (minWeaponDmg + heroMinDmg); + item.Attributes[GameAttributes.Damage_Weapon_Delta_Total_All] = (weaponDmg + heroMaxDmg) - (minWeaponDmg + heroMinDmg); + item.Attributes[GameAttributes.Damage_Weapon_Delta_Total_MainHand, 0] = (weaponDmg + heroMaxDmg) - (minWeaponDmg + heroMinDmg); + item.Attributes[GameAttributes.Damage_Weapon_Delta_Total_OffHand, 0] = 3.051758E-05f; bool equipped = false; // (item.InvLoc.x + item.InvLoc.y == 0) ? 0 : 1; - item.Attributes[GameAttribute.Item_Equipped] = equipped; + item.Attributes[GameAttributes.Item_Equipped] = equipped; - item.Attributes[GameAttribute.Durability_Max] = 400; - item.Attributes[GameAttribute.Durability_Cur] = 400; + item.Attributes[GameAttributes.Durability_Max] = 400; + item.Attributes[GameAttributes.Durability_Cur] = 400; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemGenerator.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemGenerator.cs index bb47942..105a027 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemGenerator.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ItemsSystem/ItemGenerator.cs @@ -4,9 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; using DiIiS_NA.Core.Extensions; -using NHibernate.Linq; using DiIiS_NA.Core.Logging; -using DiIiS_NA.Core.Storage; using DiIiS_NA.Core.Storage.AccountDataBase.Entities; using DiIiS_NA.Core.MPQ; using DiIiS_NA.Core.MPQ.FileFormats; @@ -1000,14 +998,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem public static Item GenerateRandom(ActorSystem.Actor owner) { var itemDefinition = GetRandom(Items.Values - .Where(def => def.ItemLevel == owner.Attributes[GameAttribute.Level]).ToList()); + .Where(def => def.ItemLevel == owner.Attributes[GameAttributes.Level]).ToList()); return CreateItem(owner, itemDefinition); } public static Item GenerateLegOrSetRandom(ActorSystem.Actor owner) { var itemDefinition = GetLegOrSetRandom(AllowedUniqueItems.Values - .Where(def => def.ItemLevel == owner.Attributes[GameAttribute.Level]).ToList()); + .Where(def => def.ItemLevel == owner.Attributes[GameAttributes.Level]).ToList()); return CreateItem(owner, itemDefinition); } @@ -1018,7 +1016,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem int maxQuality = -1, ItemTypeTable type = null, ToonClass ownerClass = ToonClass.Unknown, bool crafted = false, bool canBeUnidentified = true) { - if (level < 0) level = owner.Attributes[GameAttribute.Level]; + if (level < 0) level = owner.Attributes[GameAttributes.Level]; int quality = minQuality; //if (quality > 7) // quality -= 5; @@ -1107,7 +1105,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem public static Item GenerateRandomCraftItem(ActorSystem.Actor player, int level, bool dropRecipe = false) { - if (level < 0) level = player.Attributes[GameAttribute.Level]; + if (level < 0) level = player.Attributes[GameAttributes.Level]; ItemTable itemDefinition = null; if (dropRecipe && FastRandom.Instance.Next(100) < 2) itemDefinition = GetRandom(Items.Values @@ -1146,7 +1144,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem { string gemName = GemNames.PickRandom(); - int lvl = Math.Max(player.Attributes[GameAttribute.Level], 20); + int lvl = Math.Max(player.Attributes[GameAttributes.Level], 20); int gem_grade = ((lvl - 10) / 8) + 1; if (is_goblin) gem_grade += 2; gemName += string.Format("_{0:00}", gem_grade); @@ -1305,14 +1303,14 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem public static Item CloneItem(Item originalItem) { Item clonedItem = CreateItem(originalItem.Owner, originalItem.ItemDefinition, - originalItem.Attributes[GameAttribute.Item_Quality_Level], - originalItem.Attributes[GameAttribute.IsCrafted], originalItem.Attributes[GameAttribute.Seed]); + originalItem.Attributes[GameAttributes.Item_Quality_Level], + originalItem.Attributes[GameAttributes.IsCrafted], originalItem.Attributes[GameAttributes.Seed]); //clonedItem.AffixList = originalItem.AffixList; //clonedItem.Attributes = originalItem.Attributes; AffixGenerator.CloneIntoItem(originalItem, clonedItem); - clonedItem.Attributes[GameAttribute.ItemStackQuantityLo] = - originalItem.Attributes[GameAttribute.ItemStackQuantityLo]; + clonedItem.Attributes[GameAttributes.ItemStackQuantityLo] = + originalItem.Attributes[GameAttributes.ItemStackQuantityLo]; clonedItem.RareItemName = originalItem.RareItemName; clonedItem.Unidentified = originalItem.Unidentified; return clonedItem; @@ -1345,7 +1343,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem return null; } if (forceQuality == 9) - item.Attributes[GameAttribute.Item_Quality_Level] = 9; + item.Attributes[GameAttributes.Item_Quality_Level] = 9; if (canBeUnidentified) RandomSetUnidentified(item); return item; @@ -1373,11 +1371,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem if (definition.Name.ToLower().Contains("unique") || definition.Quality is ItemTable.ItemQuality.Legendary or ItemTable.ItemQuality.Special or ItemTable.ItemQuality.Set) { - definition.ItemLevel = player.Attributes[GameAttribute.Level]; - definition.RequiredLevel = player.Attributes[GameAttribute.Level]; - definition.CrafterRequiredLevel = player.Attributes[GameAttribute.Level]; + definition.ItemLevel = player.Attributes[GameAttributes.Level]; + definition.RequiredLevel = player.Attributes[GameAttributes.Level]; + definition.CrafterRequiredLevel = player.Attributes[GameAttributes.Level]; for (int i = 0; i < 6; i++) - definition.MaxAffixLevel[i] = player.Attributes[GameAttribute.Level]; + definition.MaxAffixLevel[i] = player.Attributes[GameAttributes.Level]; } return CookFromDefinition(player.World, definition); @@ -1392,11 +1390,11 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem var item = (Item)Activator.CreateInstance(type, new object[] { world, definition, forceQuality, crafted, seed }); - item.Attributes[GameAttribute.Item_Quality_Level] = - Math.Min(item.Attributes[GameAttribute.Item_Quality_Level], 9); + item.Attributes[GameAttributes.Item_Quality_Level] = + Math.Min(item.Attributes[GameAttributes.Item_Quality_Level], 9); if (binded) - item.Attributes[GameAttribute.Item_Binding_Level_Override] = 1; + item.Attributes[GameAttributes.Item_Binding_Level_Override] = 1; return item; } @@ -1450,7 +1448,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem if (amount > 500) item_name = "Gold4"; if (amount > 1000) item_name = "Gold5"; var item = Cook(player, item_name); - item.Attributes[GameAttribute.Gold] = amount; + item.Attributes[GameAttributes.Gold] = amount; return item; } @@ -1458,7 +1456,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem public static Item CreateBloodShards(Player player, int amount) { var item = Cook(player, "HoradricRelic"); - item.Attributes[GameAttribute.ItemStackQuantityLo] = amount; + item.Attributes[GameAttributes.ItemStackQuantityLo] = amount; return item; } @@ -1469,7 +1467,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem amount = 10 + ((amount - 10) * 5); var item = Cook(player, "HealthGlobe" + amount); - item.Attributes[GameAttribute.Health_Globe_Bonus_Health] = amount; + item.Attributes[GameAttributes.Health_Globe_Bonus_Health] = amount; return item; } @@ -1513,17 +1511,17 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem var attributesSer = item.Attributes.Serialize(); item.DBInventory.Affixes = affixSer; - item.DBInventory.DyeType = item.Attributes[GameAttribute.DyeType]; - item.DBInventory.Count = item.Attributes[GameAttribute.ItemStackQuantityLo]; - item.DBInventory.Durability = item.Attributes[GameAttribute.Durability_Cur]; - item.DBInventory.Binding = item.Attributes[GameAttribute.Item_Binding_Level_Override]; + item.DBInventory.DyeType = item.Attributes[GameAttributes.DyeType]; + item.DBInventory.Count = item.Attributes[GameAttributes.ItemStackQuantityLo]; + item.DBInventory.Durability = item.Attributes[GameAttributes.Durability_Cur]; + item.DBInventory.Binding = item.Attributes[GameAttributes.Item_Binding_Level_Override]; item.DBInventory.Rating = item.Rating; item.DBInventory.RareItemName = (item.RareItemName == null ? null : item.RareItemName.ToByteArray()); - item.DBInventory.Quality = item.Attributes[GameAttribute.Item_Quality_Level]; + item.DBInventory.Quality = item.Attributes[GameAttributes.Item_Quality_Level]; item.DBInventory.Attributes = attributesSer; item.DBInventory.GbId = item.GBHandle.GBID; item.DBInventory.Version = 2; - item.DBInventory.TransmogGBID = item.Attributes[GameAttribute.TransmogGBID]; + item.DBInventory.TransmogGBID = item.Attributes[GameAttributes.TransmogGBID]; //Logger.Info("ItemFlags: {0}", (int)item.ItemType.Flags); @@ -1539,15 +1537,15 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem var table = Items[instance.GbId]; var itm = new Item(owner.World, table, DeSerializeAffixList(instance.Affixes), instance.Attributes, instance.Count); - if (itm.Attributes[GameAttribute.Durability_Max] > 0) - itm.Attributes[GameAttribute.Durability_Cur] = instance.Durability; - itm.Attributes[GameAttribute.DyeType] = instance.DyeType; - itm.Attributes[GameAttribute.TransmogGBID] = instance.TransmogGBID; + if (itm.Attributes[GameAttributes.Durability_Max] > 0) + itm.Attributes[GameAttributes.Durability_Cur] = instance.Durability; + itm.Attributes[GameAttributes.DyeType] = instance.DyeType; + itm.Attributes[GameAttributes.TransmogGBID] = instance.TransmogGBID; itm.DBInventory = instance; itm.Unidentified = instance.Unidentified; if (instance.Version == 1) - itm.Attributes[GameAttribute.IsCrafted] = true; + itm.Attributes[GameAttributes.IsCrafted] = true; if (!owner.World.DbItems.ContainsKey(owner.World)) owner.World.DbItems.Add(owner.World, new List()); @@ -1569,7 +1567,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ItemsSystem itm.Gems[i].SetInventoryLocation(20, 0, i); } - itm.Attributes[GameAttribute.Sockets_Filled] = itm.Gems.Count; + itm.Attributes[GameAttributes.Sockets_Filled] = itm.Gems.Count; if (instance.RareItemName != null) itm.RareItemName = D3.Items.RareItemName.ParseFrom(instance.RareItemName); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/MapSystem/World.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/MapSystem/World.cs index 490fbef..168bbc8 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/MapSystem/World.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/MapSystem/World.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using System.Collections.Immutable; using System.Drawing; using System.Linq; -using System.Reflection; using DiIiS_NA.Core.Extensions; using DiIiS_NA.Core.Helpers.Hash; using DiIiS_NA.Core.Helpers.Math; @@ -824,7 +823,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem Logger.MethodTrace($"quality {forceQuality}"); if (player != null) { - int level = (forceLevel > 0 ? forceLevel : source.Attributes[GameAttribute.Level]); + int level = (forceLevel > 0 ? forceLevel : source.Attributes[GameAttributes.Level]); if (toonClass == ToonClass.Unknown && type == null) { var item = ItemGenerator.GenerateRandomEquip(player, level, forceQuality, forceQuality, canBeUnidentified: canBeUnidentified); @@ -863,12 +862,12 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem { if (player != null) { - var item = ItemGenerator.GenerateRandomCraftItem(player, source.Attributes[GameAttribute.Level], true); + var item = ItemGenerator.GenerateRandomCraftItem(player, source.Attributes[GameAttributes.Level], true); if (item == null) return; player.GroundItems[item.GlobalID] = item; DropItem(source, null, item); - if (source.Attributes[GameAttribute.Level] >= Program.MaxLevel) + if (source.Attributes[GameAttributes.Level] >= Program.MaxLevel) { item = ItemGenerator.GenerateRandomCraftItem(player, 35); if (item == null) return; @@ -895,9 +894,9 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem public void SpawnRandomGem(Actor source, Player player) { if (player != null && //player.JewelerUnlocked && - player.Attributes[GameAttribute.Level] >= 15) + player.Attributes[GameAttributes.Level] >= 15) { - var item = ItemGenerator.GenerateRandomGem(player, source.Attributes[GameAttribute.Level], source is Goblin); + var item = ItemGenerator.GenerateRandomGem(player, source.Attributes[GameAttributes.Level], source is Goblin); if (item == null) return; player.GroundItems[item.GlobalID] = item; DropItem(source, null, item); @@ -915,7 +914,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem } public void SpawnEssence(Actor source, Player player) { - int essence = (source.Attributes[GameAttribute.Level] > 60 ? 2087837753 : -152489231); + int essence = (source.Attributes[GameAttributes.Level] > 60 ? 2087837753 : -152489231); if (player != null) { var item = ItemGenerator.CookFromDefinition(player.World, ItemGenerator.GetItemDefinition(essence)); //Crafting_Demonic_Reagent @@ -931,7 +930,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem /// The position for drop. public void SpawnGold(Actor source, Player player, int Min = -1) { - int amount = (int)(LootManager.GetGoldAmount(player.Attributes[GameAttribute.Level]) * Game.GoldModifier * GameServerConfig.Instance.RateMoney); + int amount = (int)(LootManager.GetGoldAmount(player.Attributes[GameAttributes.Level]) * Game.GoldModifier * GameServerConfig.Instance.RateMoney); if (Min != -1) amount += Min; var item = ItemGenerator.CreateGold(player, amount); // somehow the actual ammount is not shown on ground /raist. @@ -1373,7 +1372,7 @@ namespace DiIiS_NA.GameServer.GSSystem.MapSystem var proximityCircle = new Circle(position.X, position.Y, radius); var actors = QuadTree.Query(proximityCircle); foreach (var actor in actors) - if (actor.Attributes[GameAttribute.Disabled] == false && actor.Attributes[GameAttribute.Gizmo_Has_Been_Operated] == false && actor.SNO == actorSno) return actor; + if (actor.Attributes[GameAttributes.Disabled] == false && actor.Attributes[GameAttributes.Gizmo_Has_Been_Operated] == false && actor.SNO == actorSno) return actor; return null; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/ObjectsSystem/GameAttributeMap.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/ObjectsSystem/GameAttributeMap.cs index e1f01a7..1028c18 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/ObjectsSystem/GameAttributeMap.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/ObjectsSystem/GameAttributeMap.cs @@ -10,8 +10,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Fields; using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem { @@ -76,7 +74,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem foreach (var pair in _attributeValues) { - var gameAttribute = GameAttribute.Attributes[pair.Key.Id];//GameAttribute.GetById(pair.Key.Id); + var gameAttribute = GameAttributes.Attributes[pair.Key.Id];//GameAttribute.GetById(pair.Key.Id); if (serialized.Length > 0) serialized += ";"; @@ -129,7 +127,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem var keyData = pairParts[0].Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); var attributeId = int.Parse(keyData[0].Trim()); - var gameAttribute = GameAttribute.Attributes[attributeId];// .GetById(attributeId); + var gameAttribute = GameAttributes.Attributes[attributeId];// .GetById(attributeId); if (gameAttribute.ScriptFunc != null && !gameAttribute.ScriptedAndSettable) continue; @@ -275,13 +273,13 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem //401,:0|0; //400,:2007581535|6.86613E+33; //* - foreach (var attr in attributes.Where(a => GameAttribute.Attributes[a.Id].Id == 408).ToList()) + foreach (var attr in attributes.Where(a => GameAttributes.Attributes[a.Id].Id == 408).ToList()) if (_parent is Item) attributes.Remove(attr); var ids = attributes.GetEnumerator(); - bool level = attributes.Contains(new KeyId() { Id = GameAttribute.Level.Id }); + bool level = attributes.Contains(new KeyId() { Id = GameAttributes.Level.Id }); int count = attributes.Count; if (count == 0) @@ -304,7 +302,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem msg.Attribute.KeyParam = keyid.Key; // FIXME: need to rework NetAttributeKeyValue, and maybe rename GameAttribute to NetAttribute? - msg.Attribute.Attribute = GameAttribute.Attributes[id]; // FIXME + msg.Attribute.Attribute = GameAttributes.Attributes[id]; // FIXME if (msg.Attribute.Attribute.IsInteger) msg.Attribute.Int = value.Value; else @@ -331,7 +329,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem { if (level) { - keyid = new KeyId { Id = GameAttribute.Level.Id }; + keyid = new KeyId { Id = GameAttributes.Level.Id }; level = false; } else @@ -345,7 +343,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem } var kv = msg.atKeyVals[i]; - if (level && keyid.Id == GameAttribute.Level.Id) + if (level && keyid.Id == GameAttributes.Level.Id) { i--; continue; @@ -357,7 +355,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem kv.KeyParam = keyid.Key; - kv.Attribute = GameAttribute.Attributes[id]; + kv.Attribute = GameAttributes.Attributes[id]; if (kv.Attribute.IsInteger) kv.Int = value.Value; else @@ -379,7 +377,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem { if (level) { - keyid = new KeyId { Id = GameAttribute.Level.Id }; + keyid = new KeyId { Id = GameAttributes.Level.Id }; level = false; } else @@ -394,7 +392,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem var kv = new NetAttributeKeyValue(); msg.atKeyVals[i] = kv; - if (level && keyid.Id == GameAttribute.Level.Id) + if (level && keyid.Id == GameAttributes.Level.Id) { i--; continue; @@ -405,7 +403,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem var id = keyid.Id; kv.KeyParam = keyid.Key; - kv.Attribute = GameAttribute.Attributes[id]; + kv.Attribute = GameAttributes.Attributes[id]; if (kv.Attribute.IsInteger) kv.Int = value.Value; else @@ -441,28 +439,28 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem GameAttributeValue gaValue; if (_attributeValues.TryGetValue(keyid, out gaValue)) return gaValue; - return attribute._DefaultValue; + return attribute.DefaultAttributeValue; } - private void SetAttributeValue(GameAttribute attribute, int? key, GameAttributeValue value) + private void SetAttributeValue(GameAttributeTyped attribute, int? key, GameAttributeValue value) { // error if scripted attribute and is not settable if (attribute.ScriptFunc != null && !attribute.ScriptedAndSettable) { var frame = new System.Diagnostics.StackFrame(2, true); - Logger.Error("illegal value assignment for GameAttribute.{0} attempted at {1}:{2}", + Logger.Error("illegal value assignment for GameAttributes.{0} attempted at {1}:{2}", attribute.Name, frame.GetFileName(), frame.GetFileLineNumber()); } if (attribute.EncodingType == GameAttributeEncoding.IntMinMax) { - if (value.Value < attribute.Min.Value || value.Value > attribute.Max.Value) - throw new ArgumentOutOfRangeException("GameAttribute." + attribute.Name.Replace(' ', '_'), "Min: " + attribute.Min.Value + " Max: " + attribute.Max.Value + " Tried to set: " + value.Value); + if (value.Value < attribute.MinAttributeValue.Value || value.Value > attribute.MaxAttributeValue.Value) + throw new ArgumentOutOfRangeException("GameAttributes." + attribute.Name.Replace(' ', '_'), "Min: " + attribute.MinAttributeValue.Value + " Max: " + attribute.MaxAttributeValue.Value + " Tried to set: " + value.Value); } else if (attribute.EncodingType == GameAttributeEncoding.Float16) { if (value.ValueF < GameAttribute.Float16Min || value.ValueF > GameAttribute.Float16Max) - throw new ArgumentOutOfRangeException("GameAttribute." + attribute.Name.Replace(' ', '_'), "Min: " + GameAttribute.Float16Min + " Max " + GameAttribute.Float16Max + " Tried to set: " + value.ValueF); + throw new ArgumentOutOfRangeException("GameAttributes." + attribute.Name.Replace(' ', '_'), "Min: " + GameAttribute.Float16Min + " Max " + GameAttribute.Float16Max + " Tried to set: " + value.ValueF); } RawSetAttributeValue(attribute, key, value); @@ -572,7 +570,7 @@ namespace DiIiS_NA.GameServer.GSSystem.ObjectsSystem { foreach (var pair in _attributeValues) { - Logger.Debug("attribute {0}, {1} => {2}", GameAttribute.Attributes[pair.Key.Id].Name, pair.Key.Key, (GameAttribute.Attributes[pair.Key.Id] is GameAttributeF ? pair.Value.ValueF : pair.Value.Value)); + Logger.Debug("attribute {0}, {1} => {2}", GameAttributes.Attributes[pair.Key.Id].Name, pair.Key.Key, (GameAttributes.Attributes[pair.Key.Id] is GameAttributeF ? pair.Value.ValueF : pair.Value.Value)); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/ConversationManager.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/ConversationManager.cs index 373671a..6699a5a 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/ConversationManager.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/ConversationManager.cs @@ -1,24 +1,15 @@ using System; -using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using DiIiS_NA.Core.Logging; -using DiIiS_NA.Core.Helpers.Math; -using DiIiS_NA.Core.Storage.AccountDataBase.Entities; using DiIiS_NA.Core.MPQ; using DiIiS_NA.Core.MPQ.FileFormats; using DiIiS_NA.GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; -using DiIiS_NA.GameServer.GSSystem.ItemsSystem; using DiIiS_NA.GameServer.MessageSystem; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Inventory; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Artisan; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Misc; -using DiIiS_NA.GameServer.GSSystem.ObjectsSystem; -using DiIiS_NA.GameServer.Core; using DiIiS_NA.GameServer.MessageSystem.Message.Fields; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Effect; using DiIiS_NA.GameServer.ClientSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base; using DiIiS_NA.GameServer.GSSystem.PowerSystem; @@ -364,9 +355,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem { if (player.InGameClient.Game.NephalemGreater) { - plr.Attributes[GameAttribute.Jewel_Upgrades_Max] = 0; - plr.Attributes[GameAttribute.Jewel_Upgrades_Bonus] = 0; - plr.Attributes[GameAttribute.Jewel_Upgrades_Used] = 0; + plr.Attributes[GameAttributes.Jewel_Upgrades_Max] = 0; + plr.Attributes[GameAttributes.Jewel_Upgrades_Bonus] = 0; + plr.Attributes[GameAttributes.Jewel_Upgrades_Used] = 0; plr.InGameClient.SendMessage(new QuestCounterMessage() { @@ -496,19 +487,19 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem player.InGameClient.Game.ActiveNephalemTimer = false; player.InGameClient.Game.ActiveNephalemProgress = 0; //Enabled banner /advocaite - player.Attributes[GameAttribute.Banner_Usable] = true; + player.Attributes[GameAttributes.Banner_Usable] = true; var HubWorld = player.InGameClient.Game.GetWorld(WorldSno.x1_tristram_adventure_mode_hub); var NStone = HubWorld.GetActorBySNO(ActorSno._x1_openworld_lootrunobelisk_b); bool Activated = true; NStone.SetIdleAnimation((AnimationSno)NStone.AnimationSet.TagMapAnimDefault[AnimationSetKeys.IdleDefault]); NStone.PlayActionAnimation((AnimationSno)NStone.AnimationSet.TagMapAnimDefault[AnimationSetKeys.Closing]); - NStone.Attributes[GameAttribute.Team_Override] = (Activated ? -1 : 2); - NStone.Attributes[GameAttribute.Untargetable] = !Activated; - NStone.Attributes[GameAttribute.NPC_Is_Operatable] = Activated; - NStone.Attributes[GameAttribute.Operatable] = Activated; - NStone.Attributes[GameAttribute.Operatable_Story_Gizmo] = Activated; - NStone.Attributes[GameAttribute.Disabled] = !Activated; - NStone.Attributes[GameAttribute.Immunity] = !Activated; + NStone.Attributes[GameAttributes.Team_Override] = (Activated ? -1 : 2); + NStone.Attributes[GameAttributes.Untargetable] = !Activated; + NStone.Attributes[GameAttributes.NPC_Is_Operatable] = Activated; + NStone.Attributes[GameAttributes.Operatable] = Activated; + NStone.Attributes[GameAttributes.Operatable_Story_Gizmo] = Activated; + NStone.Attributes[GameAttributes.Disabled] = !Activated; + NStone.Attributes[GameAttributes.Immunity] = !Activated; NStone.Attributes.BroadcastChangedIfRevealed(); foreach (var p in HubWorld.GetActorsBySNO(ActorSno._x1_openworld_lootrunportal, @@ -772,8 +763,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (wall.Position.Z > -23f) { wall.PlayAnimation(11, AnimationSno.trdun_cath_bonewall_a_death); - wall.Attributes[GameAttribute.Deleted_On_Server] = true; - wall.Attributes[GameAttribute.Could_Have_Ragdolled] = true; + wall.Attributes[GameAttributes.Deleted_On_Server] = true; + wall.Attributes[GameAttributes.Could_Have_Ragdolled] = true; wall.Attributes.BroadcastChangedIfRevealed(); wall.Destroy(); } @@ -865,7 +856,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem player.World.GetActorBySNO(ActorSno._x1_npc_westmarch_introguy) as ActorSystem.InteractiveNPC; npc.Conversations.Clear(); - npc.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + npc.Attributes[GameAttributes.Conversation_Icon, 0] = 1; npc.Attributes.BroadcastChangedIfRevealed(); break; diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Equipment.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Equipment.cs index b5c6a1e..484ce9c 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Equipment.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Equipment.cs @@ -1,8 +1,5 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using DiIiS_NA.Core.Logging; using DiIiS_NA.GameServer.GSSystem.ObjectsSystem; using DiIiS_NA.GameServer.GSSystem.ItemsSystem; @@ -50,7 +47,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (!Items.ContainsKey(item.GlobalID)) Items.Add(item.GlobalID, item); item.Owner = _owner; - item.Attributes[GameAttribute.Item_Equipped] = true; // Probaly should be handled by Equipable class /fasbat + item.Attributes[GameAttributes.Item_Equipped] = true; // Probaly should be handled by Equipable class /fasbat item.Attributes.SendChangedMessage(_owner.InGameClient); item.SetInventoryLocation(slot, 0, 0); if (save) @@ -58,14 +55,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem EquipmentChanged = true; - if (item.Attributes[GameAttribute.Item_Quality_Level] > 5) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 5) { _owner.GrantAchievement(74987243307150); - if (item.Attributes[GameAttribute.Item_Quality_Level] > 7) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 7) _owner.GrantAchievement(74987243307151); } - if (item.Attributes[GameAttribute.Sockets] > 0) + if (item.Attributes[GameAttributes.Sockets] > 0) { if (ItemGroup.IsSubType(item.ItemType, "Helm")) _owner.GrantCriteria(74987243307188); @@ -106,7 +103,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (_equipment[slot] == item.GlobalID) { _equipment[slot] = 0; - item.Attributes[GameAttribute.Item_Equipped] = false; // Probaly should be handled by Equipable class /fasbat + item.Attributes[GameAttributes.Item_Equipped] = false; // Probaly should be handled by Equipable class /fasbat item.Unreveal(_owner); item.Reveal(_owner); EquipmentChanged = true; diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Inventory.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Inventory.cs index 7a600d7..48f166a 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Inventory.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Inventory.cs @@ -56,8 +56,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem { _owner = owner; _equipment = new Equipment(owner); - _inventoryGrid = new InventoryGrid(owner, owner.Attributes[GameAttribute.Backpack_Slots] / 10, 10); - _stashGrid = new InventoryGrid(owner, owner.Attributes[GameAttribute.Shared_Stash_Slots] / 7, 7, (int)EquipmentSlotId.Stash); + _inventoryGrid = new InventoryGrid(owner, owner.Attributes[GameAttributes.Backpack_Slots] / 10, 10); + _stashGrid = new InventoryGrid(owner, owner.Attributes[GameAttributes.Shared_Stash_Slots] / 7, 7, (int)EquipmentSlotId.Stash); _buybackGrid = new InventoryGrid(owner, 1, 20, (int)EquipmentSlotId.VendorBuyback); _skillSocketRunes = new uint[6]; StashRevealed = false; @@ -118,7 +118,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem public int GetGearScore() { - return GetEquippedItems().Where(item => item.Attributes[GameAttribute.Item_Binding_Level_Override] == 0).Select(i => i.Rating).Sum(); + return GetEquippedItems().Where(item => item.Attributes[GameAttributes.Item_Binding_Level_Override] == 0).Select(i => i.Rating).Sum(); } public int GetAvgLevel() @@ -173,9 +173,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem List baseItems = FindSameItems(item.GBHandle.GBID); foreach (Item baseItem in baseItems) { - if (baseItem.Attributes[GameAttribute.ItemStackQuantityLo] + item.Attributes[GameAttribute.ItemStackQuantityLo] <= baseItem.ItemDefinition.MaxStackSize) + if (baseItem.Attributes[GameAttributes.ItemStackQuantityLo] + item.Attributes[GameAttributes.ItemStackQuantityLo] <= baseItem.ItemDefinition.MaxStackSize) { - baseItem.UpdateStackCount(baseItem.Attributes[GameAttribute.ItemStackQuantityLo] + item.Attributes[GameAttribute.ItemStackQuantityLo]); + baseItem.UpdateStackCount(baseItem.Attributes[GameAttributes.ItemStackQuantityLo] + item.Attributes[GameAttributes.ItemStackQuantityLo]); baseItem.Attributes.SendChangedMessage(_owner.InGameClient); // Item amount successful added. Don't place item in inventory instead destroy it. @@ -316,7 +316,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem { Item item = _inventoryGrid.GetItemByDynId(_owner, (uint)itemId); if (item == null) return; - int cost = (int)Math.Floor(item.GetPrice() / 25f) * Math.Max(1, item.Attributes[GameAttribute.Gold]); + int cost = (int)Math.Floor(item.GetPrice() / 25f) * Math.Max(1, item.Attributes[GameAttributes.Gold]); _inventoryGrid.RemoveItem(item); item.Unreveal(_owner); AddGoldAmount(cost); @@ -330,7 +330,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (Item.IsGem(target_item.ItemType)) return false; //can't equip gem - if (target_item.Attributes[GameAttribute.Requirement, 67] > (_owner.Level + 5)) return false; //can't equip too high level + if (target_item.Attributes[GameAttributes.Requirement, 67] > (_owner.Level + 5)) return false; //can't equip too high level if (destination_slot == 14 || destination_slot == 16 || destination_slot == 17) return false; //can't equip in utility slots @@ -506,17 +506,17 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem Item oldItem = destGrid.GetItem(request.Location.Row, request.Location.Column); - if (item.IsStackable() && item.GBHandle.GBID == oldItem.GBHandle.GBID && oldItem.Attributes[GameAttribute.ItemStackQuantityLo] < oldItem.ItemDefinition.MaxStackSize) //if it's stackable and same item (merge stacks) + if (item.IsStackable() && item.GBHandle.GBID == oldItem.GBHandle.GBID && oldItem.Attributes[GameAttributes.ItemStackQuantityLo] < oldItem.ItemDefinition.MaxStackSize) //if it's stackable and same item (merge stacks) { - if (item.Attributes[GameAttribute.ItemStackQuantityLo] + oldItem.Attributes[GameAttribute.ItemStackQuantityLo] <= oldItem.ItemDefinition.MaxStackSize) + if (item.Attributes[GameAttributes.ItemStackQuantityLo] + oldItem.Attributes[GameAttributes.ItemStackQuantityLo] <= oldItem.ItemDefinition.MaxStackSize) { - oldItem.UpdateStackCount(oldItem.Attributes[GameAttribute.ItemStackQuantityLo] + item.Attributes[GameAttribute.ItemStackQuantityLo]); + oldItem.UpdateStackCount(oldItem.Attributes[GameAttributes.ItemStackQuantityLo] + item.Attributes[GameAttributes.ItemStackQuantityLo]); DestroyInventoryItem(item); oldItem.Attributes.SendChangedMessage((_owner as Player).InGameClient); } else { - item.UpdateStackCount(item.Attributes[GameAttribute.ItemStackQuantityLo] - (oldItem.ItemDefinition.MaxStackSize - oldItem.Attributes[GameAttribute.ItemStackQuantityLo])); + item.UpdateStackCount(item.Attributes[GameAttributes.ItemStackQuantityLo] - (oldItem.ItemDefinition.MaxStackSize - oldItem.Attributes[GameAttributes.ItemStackQuantityLo])); item.Attributes.SendChangedMessage((_owner as Player).InGameClient); oldItem.UpdateStackCount(oldItem.ItemDefinition.MaxStackSize); oldItem.Attributes.SendChangedMessage((_owner as Player).InGameClient); @@ -792,7 +792,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem { if (Item.Is2H(itemMainHand.ItemType)) { - if (Item.IsShield(itemOffHand.ItemType) && !_owner.Attributes[GameAttribute.Allow_2H_And_Shield]) + if (Item.IsShield(itemOffHand.ItemType) && !_owner.Attributes[GameAttributes.Allow_2H_And_Shield]) bugged = true; //Crusader - Heavenly Strength if (Item.IsBow(itemMainHand.ItemType) && !Item.IsQuiver(itemOffHand.ItemType)) @@ -832,8 +832,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (itemMainHand != null) if (itemOffHand != null && !Item.IsOffhand(itemOffHand.ItemType)) { - mainDmgMin = itemMainHand.Attributes[GameAttribute.Damage_Weapon_Min_Total, damageType.AttributeKey]; - offDmgMin = itemOffHand.Attributes[GameAttribute.Damage_Weapon_Min_Total, damageType.AttributeKey]; + mainDmgMin = itemMainHand.Attributes[GameAttributes.Damage_Weapon_Min_Total, damageType.AttributeKey]; + offDmgMin = itemOffHand.Attributes[GameAttributes.Damage_Weapon_Min_Total, damageType.AttributeKey]; } return (mainDmgMin + offDmgMin) * 0.5f; @@ -849,8 +849,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (itemMainHand != null) if (itemOffHand != null && !Item.IsOffhand(itemOffHand.ItemType)) { - mainDmgDelta = itemMainHand.Attributes[GameAttribute.Damage_Weapon_Delta_Total, damageType.AttributeKey]; - offDmgDelta = itemOffHand.Attributes[GameAttribute.Damage_Weapon_Delta_Total, damageType.AttributeKey]; + mainDmgDelta = itemMainHand.Attributes[GameAttributes.Damage_Weapon_Delta_Total, damageType.AttributeKey]; + offDmgDelta = itemOffHand.Attributes[GameAttributes.Damage_Weapon_Delta_Total, damageType.AttributeKey]; } return (mainDmgDelta + offDmgDelta) * 0.5f; @@ -864,18 +864,18 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem Item itemOffHand = _equipment.GetEquipment(EquipmentSlotId.Off_Hand); if (itemMainHand != null) { - float main_aps = itemMainHand.Attributes[GameAttribute.Attacks_Per_Second_Item]; + float main_aps = itemMainHand.Attributes[GameAttributes.Attacks_Per_Second_Item]; aps = main_aps; if (itemOffHand != null && !Item.IsOffhand(itemOffHand.ItemType)) { - float off_aps = itemOffHand.Attributes[GameAttribute.Attacks_Per_Second_Item]; + float off_aps = itemOffHand.Attributes[GameAttributes.Attacks_Per_Second_Item]; if (main_aps > 0f && off_aps > 0f) aps = 2f / ((1f / (main_aps * 1.15f)) + (1f / (off_aps * 1.15f))); } } else if (itemOffHand != null) { - aps = itemOffHand.Attributes[GameAttribute.Attacks_Per_Second_Item]; + aps = itemOffHand.Attributes[GameAttributes.Attacks_Per_Second_Item]; } if (aps < 0.5f) @@ -887,7 +887,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem public float GetMagicFind() { if (_owner.World == null) - return GetItemBonus(GameAttribute.Magic_Find); + return GetItemBonus(GameAttributes.Magic_Find); var difficulty = _owner.World.Game.Difficulty; var mult = 1f; @@ -907,13 +907,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem default: mult = 1f; break; } - return GetItemBonus(GameAttribute.Magic_Find) * mult; + return GetItemBonus(GameAttributes.Magic_Find) * mult; } public float GetGoldFind() { if (_owner.World == null) - return GetItemBonus(GameAttribute.Gold_Find); + return GetItemBonus(GameAttributes.Gold_Find); var difficulty = _owner.World.Game.Difficulty; var mult = 1f; @@ -933,7 +933,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem default: mult = 1f; break; } - return GetItemBonus(GameAttribute.Gold_Find) * mult; + return GetItemBonus(GameAttributes.Gold_Find) * mult; } @@ -958,11 +958,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem Item itemOffHand = _equipment.GetEquipment(EquipmentSlotId.Off_Hand); if (itemOffHand != null) { - if (Item.IsQuiver(itemOffHand.ItemType) && (item.Attributes[GameAttribute.Bow] > 0 || _owner.Attributes[GameAttribute.Crossbow] > 0)) + if (Item.IsQuiver(itemOffHand.ItemType) && (item.Attributes[GameAttributes.Bow] > 0 || _owner.Attributes[GameAttributes.Crossbow] > 0)) return true; - if (Item.IsShield(itemOffHand.ItemType) && _owner.Attributes[GameAttribute.Allow_2H_And_Shield]) - if (!Item.IsBow(type) && (_owner.Attributes[GameAttribute.Crossbow] <= 0)) + if (Item.IsShield(itemOffHand.ItemType) && _owner.Attributes[GameAttributes.Allow_2H_And_Shield]) + if (!Item.IsBow(type) && (_owner.Attributes[GameAttributes.Crossbow] <= 0)) return true; _equipment.UnequipItem(itemOffHand); @@ -1002,9 +1002,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem } else if (Item.IsQuiver(type)) { - return (_owner.Attributes[GameAttribute.Bow] > 0 || _owner.Attributes[GameAttribute.Crossbow] > 0); + return (_owner.Attributes[GameAttributes.Bow] > 0 || _owner.Attributes[GameAttributes.Crossbow] > 0); } - else if (Item.IsShield(type) && _owner.Attributes[GameAttribute.Allow_2H_And_Shield]) + else if (Item.IsShield(type) && _owner.Attributes[GameAttributes.Allow_2H_And_Shield]) { return true; } @@ -1035,8 +1035,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem { Logger.Trace("OnInventorySplitStackMessage()"); Item itemFrom = GetItemByDynId(_owner, (uint)msg.FromID); - int amount = Math.Min((int)msg.Amount, itemFrom.Attributes[GameAttribute.ItemStackQuantityLo] - 1); - itemFrom.UpdateStackCount(itemFrom.Attributes[GameAttribute.ItemStackQuantityLo] - amount); + int amount = Math.Min((int)msg.Amount, itemFrom.Attributes[GameAttributes.ItemStackQuantityLo] - 1); + itemFrom.UpdateStackCount(itemFrom.Attributes[GameAttributes.ItemStackQuantityLo] - amount); itemFrom.Attributes.SendChangedMessage(_owner.InGameClient); Item item = ItemGenerator.CreateItem(_owner, itemFrom.ItemDefinition); @@ -1056,10 +1056,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem { Item itemFrom = GetItemByDynId(_owner, msg.FromID); Item itemTo = GetItemByDynId(_owner, msg.ToID); - int amount = Math.Min((int)msg.Amount, itemFrom.Attributes[GameAttribute.ItemStackQuantityLo] - 1); + int amount = Math.Min((int)msg.Amount, itemFrom.Attributes[GameAttributes.ItemStackQuantityLo] - 1); - itemFrom.UpdateStackCount(itemFrom.Attributes[GameAttribute.ItemStackQuantityLo] - amount); - itemTo.UpdateStackCount(itemTo.Attributes[GameAttribute.ItemStackQuantityLo] + amount); + itemFrom.UpdateStackCount(itemFrom.Attributes[GameAttributes.ItemStackQuantityLo] - amount); + itemTo.UpdateStackCount(itemTo.Attributes[GameAttributes.ItemStackQuantityLo] + amount); itemFrom.Attributes.SendChangedMessage(_owner.InGameClient); itemTo.Attributes.SendChangedMessage(_owner.InGameClient); @@ -1143,7 +1143,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem _equipment.EquipmentChanged = true; var Item = GetItemByDynId(_owner, msg.ItemID); ; - Item.Attributes[GameAttribute.DyeType] = msg.DyeID; + Item.Attributes[GameAttributes.DyeType] = msg.DyeID; Item.Attributes.BroadcastChangedIfRevealed(); RefreshInventoryToClient(); } @@ -1247,7 +1247,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem float maxValue; if (Item.RandomGenerator == null) - Item.RandomGenerator = new ItemRandomHelper(Item.Attributes[GameAttribute.Seed]); + Item.RandomGenerator = new ItemRandomHelper(Item.Attributes[GameAttributes.Seed]); if (FormulaScript.Evaluate(effect.Formula.ToArray(), Item.RandomGenerator, out result, out minValue, out maxValue)) { @@ -1261,17 +1261,17 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem result = (float)FastRandom.Instance.Next(1, 3); } - if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeF) + if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeF) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeF; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeF; if (effect.SNOParam != -1) Item.Attributes[attr, effect.SNOParam] -= result; else Item.Attributes[attr] -= result; } - else if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeI) + else if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeI) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeI; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeI; if (effect.SNOParam != -1) Item.Attributes[attr, effect.SNOParam] -= (int)result; else @@ -1299,7 +1299,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem float maxValue; if (Item.RandomGenerator == null) - Item.RandomGenerator = new ItemRandomHelper(Item.Attributes[GameAttribute.Seed]); + Item.RandomGenerator = new ItemRandomHelper(Item.Attributes[GameAttributes.Seed]); if (FormulaScript.Evaluate(effect.Formula.ToArray(), Item.RandomGenerator, out result, out minValue, out maxValue)) { @@ -1320,17 +1320,17 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem // - if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeF) + if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeF) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeF; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeF; if (effect.SNOParam != -1) Item.Attributes[attr, effect.SNOParam] += result; else Item.Attributes[attr] += result; } - else if (GameAttribute.Attributes[effect.AttributeId] is GameAttributeI) + else if (GameAttributes.Attributes[effect.AttributeId] is GameAttributeI) { - var attr = GameAttribute.Attributes[effect.AttributeId] as GameAttributeI; + var attr = GameAttributes.Attributes[effect.AttributeId] as GameAttributeI; if (effect.SNOParam != -1) Item.Attributes[attr, effect.SNOParam] += (int)result; else @@ -1392,32 +1392,32 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem !item.ItemDefinition.Name.ToLower().Contains("key") && !item.ItemDefinition.Name.ToLower().Contains("horadric") && !item.ItemDefinition.Name.ToLower().Contains("dye")) - if (item.Attributes[GameAttribute.Item_Quality_Level] < 3) + if (item.Attributes[GameAttributes.Item_Quality_Level] < 3) { last_item_gbid = item.GBHandle.GBID; - last_item_quality = item.Attributes[GameAttribute.Item_Quality_Level]; + last_item_quality = item.Attributes[GameAttributes.Item_Quality_Level]; count_reward += SalvageItem(item); } break; // Magical items case 1: foreach (var item in GetBackPackItems()) - if (item.Attributes[GameAttribute.Item_Quality_Level] > 2 & - item.Attributes[GameAttribute.Item_Quality_Level] < 6) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 2 & + item.Attributes[GameAttributes.Item_Quality_Level] < 6) { last_item_gbid = item.GBHandle.GBID; - last_item_quality = item.Attributes[GameAttribute.Item_Quality_Level]; + last_item_quality = item.Attributes[GameAttributes.Item_Quality_Level]; count_reward += SalvageItem(item); } break; // Rare Items case 2: foreach (var item in GetBackPackItems()) - if (item.Attributes[GameAttribute.Item_Quality_Level] > 5 & - item.Attributes[GameAttribute.Item_Quality_Level] < 9) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 5 & + item.Attributes[GameAttributes.Item_Quality_Level] < 9) { last_item_gbid = item.GBHandle.GBID; - last_item_quality = item.Attributes[GameAttribute.Item_Quality_Level]; + last_item_quality = item.Attributes[GameAttributes.Item_Quality_Level]; count_reward += SalvageItem(item); } break; @@ -1440,35 +1440,35 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (item == null) return 0; - if (item.Attributes[GameAttribute.IsCrafted] == true && item.DBInventory.Version > 1) + if (item.Attributes[GameAttributes.IsCrafted] == true && item.DBInventory.Version > 1) return 0; - if (item.Attributes[GameAttribute.Item_Equipped] == true) + if (item.Attributes[GameAttributes.Item_Equipped] == true) return 0; string rewardName = "Crafting_"; if (item.ItemLevel >= 60) { - if (item.Attributes[GameAttribute.Item_Quality_Level] > 5) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 5) rewardName += "Rare_01"; //Veiled Crystal else - if (item.Attributes[GameAttribute.Item_Quality_Level] > 2) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 2) rewardName += "Magic_01"; //Arcane Dust else rewardName += "AssortedParts_01"; //Reusable Parts } else - if (item.Attributes[GameAttribute.Item_Quality_Level] > 5) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 5) rewardName += "Rare_01"; //Iridescent Tear else - if (item.Attributes[GameAttribute.Item_Quality_Level] > 2) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 2) rewardName += "Magic_01"; //Exquisite Essence else rewardName += "AssortedParts_01"; //Common Debris Item reward = ItemGenerator.Cook(_owner, rewardName); - int count_reward = RandomHelper.Next(1, 5) * (10 - item.Attributes[GameAttribute.Item_Quality_Level]); + int count_reward = RandomHelper.Next(1, 5) * (10 - item.Attributes[GameAttributes.Item_Quality_Level]); var playerAcc = _owner.Toon.GameAccount; if (reward == null) return 0; for (int i = 0; i < count_reward; i++) @@ -1499,7 +1499,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem gem.Unreveal(_owner); item.Gems.Clear(); - item.Attributes[GameAttribute.Sockets_Filled] = 0; + item.Attributes[GameAttributes.Sockets_Filled] = 0; item.Attributes.BroadcastChangedIfRevealed(); } @@ -1508,7 +1508,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem bool haveBrimstone = false; Item brimstone = null; - if (item.Attributes[GameAttribute.Item_Quality_Level] > 8 || FastRandom.Instance.Next(1, 1000) == 1) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 8 || FastRandom.Instance.Next(1, 1000) == 1) { if (item.ItemLevel >= 60) rewardName = "Crafting_Legendary_01"; //Forgotten Soul @@ -1572,33 +1572,33 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem //if (item.Attributes[GameAttribute.IsCrafted] == true)// && item.DBInventory.Version > 1) // return; - if (item.Attributes[GameAttribute.Item_Equipped] == true) + if (item.Attributes[GameAttributes.Item_Equipped] == true) return; string rewardName = "Crafting_"; if (item.ItemLevel >= 60) { - if (item.Attributes[GameAttribute.Item_Quality_Level] > 5) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 5) rewardName += "Rare_01"; //Veiled Crystal else - if (item.Attributes[GameAttribute.Item_Quality_Level] > 2) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 2) rewardName += "Magic_01"; //Arcane Dust else rewardName += "AssortedParts_01"; //Reusable Parts } else - if (item.Attributes[GameAttribute.Item_Quality_Level] > 5) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 5) rewardName += "Rare_01"; //Iridescent Tear else - if (item.Attributes[GameAttribute.Item_Quality_Level] > 2) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 2) rewardName += "Magic_01"; //Exquisite Essence else rewardName += "AssortedParts_01"; //Common Debris Item reward = ItemGenerator.Cook(_owner, rewardName); - int count_reward = RandomHelper.Next(1, 5) * (10 - item.Attributes[GameAttribute.Item_Quality_Level]); - if (item.Attributes[GameAttribute.IsCrafted] == true) + int count_reward = RandomHelper.Next(1, 5) * (10 - item.Attributes[GameAttributes.Item_Quality_Level]); + if (item.Attributes[GameAttributes.IsCrafted] == true) count_reward /= 4; if (reward == null) return; for (int i = 0; i < count_reward; i++) @@ -1627,7 +1627,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem gem.Unreveal(_owner); item.Gems.Clear(); - item.Attributes[GameAttribute.Sockets_Filled] = 0; + item.Attributes[GameAttributes.Sockets_Filled] = 0; item.Attributes.BroadcastChangedIfRevealed(); } @@ -1637,7 +1637,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem bool haveBrimstone = false; Item brimstone = null; - if (item.Attributes[GameAttribute.Item_Quality_Level] > 8 || FastRandom.Instance.Next(1, 1000) == 1) + if (item.Attributes[GameAttributes.Item_Quality_Level] > 8 || FastRandom.Instance.Next(1, 1000) == 1) { if (item.ItemLevel >= 60) rewardName = "Crafting_Legendary_01"; //Forgotten Soul @@ -1654,7 +1654,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem _owner.InGameClient.SendMessage(new SalvageResultsMessage() { gbidOriginalItem = item.GBHandle.GBID, - IQLOriginalItem = Math.Min(item.Attributes[GameAttribute.Item_Quality_Level], 9), + IQLOriginalItem = Math.Min(item.Attributes[GameAttributes.Item_Quality_Level], 9), MaterialsResults = haveBrimstone ? 2 : 1, gbidNewItems = new int[] { reward.GBHandle.GBID, haveBrimstone ? brimstone.GBHandle.GBID : -1, -1, -1 }, MaterialsCounts = new int[] { count_reward, haveBrimstone ? 1 : 0, 0, 0 } @@ -1692,7 +1692,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem var extraAffixCount = recipe.ItemSpecifierData.AdditionalRandomAffixes + FastRandom.Instance.Next(0, recipe.ItemSpecifierData.AdditionalRandomAffixesDelta); Item reward = ItemGenerator.CookFromDefinition(_owner.World, ItemGenerator.GetItemDefinition(recipe.ItemSpecifierData.ItemGBId), Math.Min(extraAffixCount, 9), false, true); - reward.Attributes[GameAttribute.ItemStackQuantityLo] = 0; + reward.Attributes[GameAttributes.ItemStackQuantityLo] = 0; if (!Item.IsAmulet(reward.ItemType) && !Item.IsRing(reward.ItemType)) { if (reward.ItemLevel >= 70) @@ -1732,14 +1732,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (item.ItemDefinition.Hash == ingr.ItemsGBID) { FoundedItem = item; - if (FoundedItem.Attributes[GameAttribute.ItemStackQuantityLo] == ingr.Count) + if (FoundedItem.Attributes[GameAttributes.ItemStackQuantityLo] == ingr.Count) { _inventoryGrid.RemoveItem(FoundedItem); FoundedItem.Unreveal(FoundedItem.Owner as Player); } - else if (FoundedItem.Attributes[GameAttribute.ItemStackQuantityLo] > ingr.Count) + else if (FoundedItem.Attributes[GameAttributes.ItemStackQuantityLo] > ingr.Count) { - FoundedItem.Attributes[GameAttribute.ItemStackQuantityLo] -= ingr.Count; + FoundedItem.Attributes[GameAttributes.ItemStackQuantityLo] -= ingr.Count; FoundedItem.Attributes.BroadcastChangedIfRevealed(); } else @@ -1749,14 +1749,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem foreach (var item in GetStashItems()) if (item.ItemDefinition.Hash == ingr.ItemsGBID) { - if (item.Attributes[GameAttribute.ItemStackQuantityLo] == ingr.Count) + if (item.Attributes[GameAttributes.ItemStackQuantityLo] == ingr.Count) { _stashGrid.RemoveItem(item); item.Unreveal(item.Owner as Player); } - else if(item.Attributes[GameAttribute.ItemStackQuantityLo] > ingr.Count) + else if(item.Attributes[GameAttributes.ItemStackQuantityLo] > ingr.Count) { - item.Attributes[GameAttribute.ItemStackQuantityLo] -= ingr.Count; + item.Attributes[GameAttributes.ItemStackQuantityLo] -= ingr.Count; item.Attributes.BroadcastChangedIfRevealed(); } else @@ -1786,7 +1786,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem RemoveGoldAmount(recipeDefinition.Gold); if (Item.IsGem(reward.ItemType)) - reward.Attributes[GameAttribute.Item_Quality_Level] = 1; + reward.Attributes[GameAttributes.Item_Quality_Level] = 1; else { foreach (int affixId in recipe.ItemSpecifierData.GBIdAffixes) @@ -1796,21 +1796,21 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (reward.ItemDefinition.Name.StartsWith("Unique_")) { AffixGenerator.Generate(reward, recipe.ItemSpecifierData.AdditionalRandomAffixes, true); - reward.Attributes[GameAttribute.Item_Quality_Level] = 9; + reward.Attributes[GameAttributes.Item_Quality_Level] = 9; } //else if (!(recipeDefinition.Name.StartsWith("T12_") || recipeDefinition.Name.StartsWith("T11_"))) - reward.Attributes[GameAttribute.Item_Quality_Level] = Math.Min(recipe.ItemSpecifierData.AdditionalRandomAffixes + 2 , 9); - if (reward.Attributes[GameAttribute.Item_Quality_Level] < 9) + reward.Attributes[GameAttributes.Item_Quality_Level] = Math.Min(recipe.ItemSpecifierData.AdditionalRandomAffixes + 2 , 9); + if (reward.Attributes[GameAttributes.Item_Quality_Level] < 9) { AffixGenerator.Generate(reward, recipe.ItemSpecifierData.AdditionalRandomAffixes, true); } //reward.Attributes[GameAttribute.IsCrafted] = true; } - reward.Attributes[GameAttribute.IsCrafted] = true; - reward.Attributes[GameAttribute.Attachment_Handled_By_Client] = true; - reward.Attributes[GameAttribute.ItemStackQuantityLo]++; + reward.Attributes[GameAttributes.IsCrafted] = true; + reward.Attributes[GameAttributes.Attachment_Handled_By_Client] = true; + reward.Attributes[GameAttributes.ItemStackQuantityLo]++; if (Item.IsGem(reward.ItemType)) { @@ -1857,64 +1857,64 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem } else { - if (reward.Attributes[GameAttribute.Strength_Item] > 0) + if (reward.Attributes[GameAttributes.Strength_Item] > 0) _owner.GrantCriteria(74987243308238); - if (reward.Attributes[GameAttribute.Dexterity_Item] > 0) + if (reward.Attributes[GameAttributes.Dexterity_Item] > 0) _owner.GrantCriteria(74987243308941); - if (reward.Attributes[GameAttribute.Intelligence_Item] > 0) + if (reward.Attributes[GameAttributes.Intelligence_Item] > 0) _owner.GrantCriteria(74987243308942); - if (reward.Attributes[GameAttribute.Vitality_Item] > 0) + if (reward.Attributes[GameAttributes.Vitality_Item] > 0) _owner.GrantCriteria(74987243308943); - if (reward.Attributes[GameAttribute.Block_Chance_Item_Total] > 0) + if (reward.Attributes[GameAttributes.Block_Chance_Item_Total] > 0) _owner.GrantCriteria(74987243308239); - if (reward.Attributes[GameAttribute.Thorns_Percent_Total] > 0 || reward.Attributes[GameAttribute.Thorns_Fixed, 0] > 0) + if (reward.Attributes[GameAttributes.Thorns_Percent_Total] > 0 || reward.Attributes[GameAttributes.Thorns_Fixed, 0] > 0) _owner.GrantCriteria(74987243308945); - if (reward.Attributes[GameAttribute.Sockets] > 0) + if (reward.Attributes[GameAttributes.Sockets] > 0) _owner.GrantCriteria(74987243308946); - if (reward.Attributes[GameAttribute.Experience_Bonus] > 0 || reward.Attributes[GameAttribute.Experience_Bonus_Percent] > 0) + if (reward.Attributes[GameAttributes.Experience_Bonus] > 0 || reward.Attributes[GameAttributes.Experience_Bonus_Percent] > 0) _owner.GrantCriteria(74987243308947); - if (reward.Attributes[GameAttribute.Gold_Find_Total] > 0) + if (reward.Attributes[GameAttributes.Gold_Find_Total] > 0) _owner.GrantCriteria(74987243308948); - if (reward.Attributes[GameAttribute.Attacks_Per_Second_Item_Bonus] > 0 || reward.Attributes[GameAttribute.Attacks_Per_Second_Item_Percent] > 0) + if (reward.Attributes[GameAttributes.Attacks_Per_Second_Item_Bonus] > 0 || reward.Attributes[GameAttributes.Attacks_Per_Second_Item_Percent] > 0) _owner.GrantCriteria(74987243308949); - if (reward.Attributes[GameAttribute.Hitpoints_Regen_Per_Second] > 0) + if (reward.Attributes[GameAttributes.Hitpoints_Regen_Per_Second] > 0) _owner.GrantCriteria(74987243308950); - if (reward.Attributes[GameAttribute.Magic_Find_Total] > 0) + if (reward.Attributes[GameAttributes.Magic_Find_Total] > 0) _owner.GrantCriteria(74987243308951); - if (reward.Attributes[GameAttribute.Crit_Percent_Bonus_Capped] > 0 || reward.Attributes[GameAttribute.Crit_Damage_Percent] > 0) + if (reward.Attributes[GameAttributes.Crit_Percent_Bonus_Capped] > 0 || reward.Attributes[GameAttributes.Crit_Damage_Percent] > 0) _owner.GrantCriteria(74987243308952); - if (reward.Attributes[GameAttribute.Movement_Scalar] > 0) + if (reward.Attributes[GameAttributes.Movement_Scalar] > 0) _owner.GrantCriteria(74987243312486); - if (reward.Attributes[GameAttribute.Resistance, 3] > 0) //cold + if (reward.Attributes[GameAttributes.Resistance, 3] > 0) //cold _owner.GrantCriteria(74987243308240); - if (reward.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] > 0) //spirit + if (reward.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] > 0) //spirit _owner.GrantCriteria(74987243308954); - if (reward.Attributes[GameAttribute.Resource_Max_Bonus, 6] > 0) //discipline + if (reward.Attributes[GameAttributes.Resource_Max_Bonus, 6] > 0) //discipline _owner.GrantCriteria(74987243308955); - if (reward.Attributes[GameAttribute.Resistance, 5] > 0) //arcane + if (reward.Attributes[GameAttributes.Resistance, 5] > 0) //arcane _owner.GrantCriteria(74987243308956); - if (reward.Attributes[GameAttribute.Resistance, 1] > 0) //fire + if (reward.Attributes[GameAttributes.Resistance, 1] > 0) //fire _owner.GrantCriteria(74987243308957); - if (reward.Attributes[GameAttribute.Resistance, 2] > 0) //lightning + if (reward.Attributes[GameAttributes.Resistance, 2] > 0) //lightning _owner.GrantCriteria(74987243308958); - if (reward.Attributes[GameAttribute.Resistance, 4] > 0) //poison + if (reward.Attributes[GameAttributes.Resistance, 4] > 0) //poison _owner.GrantCriteria(74987243308959); - if (reward.Attributes[GameAttribute.Resource_Max_Bonus, 2] > 0) //fury + if (reward.Attributes[GameAttributes.Resource_Max_Bonus, 2] > 0) //fury _owner.GrantCriteria(74987243308960); - if (reward.Attributes[GameAttribute.Resource_Max_Bonus, 1] > 0) //arcane + if (reward.Attributes[GameAttributes.Resource_Max_Bonus, 1] > 0) //arcane _owner.GrantCriteria(74987243308961); - if (reward.Attributes[GameAttribute.Resource_Max_Bonus, 0] > 0) //mana + if (reward.Attributes[GameAttributes.Resource_Max_Bonus, 0] > 0) //mana _owner.GrantCriteria(74987243308962); - if (reward.Attributes[GameAttribute.Resistance_All] > 0) + if (reward.Attributes[GameAttributes.Resistance_All] > 0) _owner.GrantCriteria(74987243308963); - if (reward.Attributes[GameAttribute.Hitpoints_On_Hit] > 0 || reward.Attributes[GameAttribute.Steal_Health_Percent] > 0) + if (reward.Attributes[GameAttributes.Hitpoints_On_Hit] > 0 || reward.Attributes[GameAttributes.Steal_Health_Percent] > 0) _owner.GrantCriteria(74987243308966); - if (reward.Attributes[GameAttribute.Health_Globe_Bonus_Health] > 0) + if (reward.Attributes[GameAttributes.Health_Globe_Bonus_Health] > 0) _owner.GrantCriteria(74987243308967); - if (reward.Attributes[GameAttribute.Armor_Bonus_Item] > 0 || reward.Attributes[GameAttribute.Armor_Item_Percent] > 0) + if (reward.Attributes[GameAttributes.Armor_Bonus_Item] > 0 || reward.Attributes[GameAttributes.Armor_Item_Percent] > 0) _owner.GrantCriteria(74987243308968); } @@ -1922,9 +1922,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem _owner.UpdateQuantity(74987243307371, 1); _owner.UpdateQuantity(74987243307374, 1); - if (reward.Attributes[GameAttribute.ItemStackQuantityLo] > 0) + if (reward.Attributes[GameAttributes.ItemStackQuantityLo] > 0) _inventoryGrid.AddItem(reward); - client.SendMessage(new CraftingResultsMessage { annItem = reward.GlobalID, GBIDItem = recipe.ItemSpecifierData.ItemGBId, IQL = reward.Attributes[GameAttribute.Item_Quality_Level] }); + client.SendMessage(new CraftingResultsMessage { annItem = reward.GlobalID, GBIDItem = recipe.ItemSpecifierData.ItemGBId, IQL = reward.Attributes[GameAttributes.Item_Quality_Level] }); UpdateCurrencies(); @@ -1968,15 +1968,15 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (GetGoldAmount() >= amount) { RemoveGoldAmount(amount); - _owner.Attributes[GameAttribute.Shared_Stash_Slots] += 70; + _owner.Attributes[GameAttributes.Shared_Stash_Slots] += 70; _owner.Attributes.BroadcastChangedIfRevealed(); - _stashGrid.ResizeGrid(_owner.Attributes[GameAttribute.Shared_Stash_Slots] / 7, 7); + _stashGrid.ResizeGrid(_owner.Attributes[GameAttributes.Shared_Stash_Slots] / 7, 7); var dbGAcc = _owner.Toon.GameAccount.DBGameAccount; - dbGAcc.StashSize = _owner.Attributes[GameAttribute.Shared_Stash_Slots]; + dbGAcc.StashSize = _owner.Attributes[GameAttributes.Shared_Stash_Slots]; _owner.World.Game.GameDbSession.SessionUpdate(dbGAcc); } - if (_owner.Attributes[GameAttribute.Shared_Stash_Slots] >= 280) + if (_owner.Attributes[GameAttributes.Shared_Stash_Slots] >= 280) _owner.GrantAchievement(74987243307163); } @@ -1990,9 +1990,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem item = _equipment.GetItemByDynId(_owner, requestSocketMessage.annItemToReceiveGem); if (item == null) return; } - if (item.Attributes[GameAttribute.Sockets_Filled] >= item.Attributes[GameAttribute.Sockets]) return; + if (item.Attributes[GameAttributes.Sockets_Filled] >= item.Attributes[GameAttributes.Sockets]) return; gem.Owner = item; - gem.SetInventoryLocation(20, 0, item.Attributes[GameAttribute.Sockets_Filled]); + gem.SetInventoryLocation(20, 0, item.Attributes[GameAttributes.Sockets_Filled]); (item.Owner as Player).InGameClient.SendMessage(gem.ACDInventoryPositionMessage(item.Owner as Player)); item.Gems.Add(gem); @@ -2012,11 +2012,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem break; } - if (gem.Attributes[GameAttribute.ItemStackQuantityLo] > 1) + if (gem.Attributes[GameAttributes.ItemStackQuantityLo] > 1) { var compensation = ItemGenerator.CookFromDefinition(_owner.World, ItemGenerator.GetItemDefinition(gem.GBHandle.GBID), 1); - compensation.Attributes[GameAttribute.ItemStackQuantityLo] = gem.Attributes[GameAttribute.ItemStackQuantityLo] - 1; - gem.Attributes[GameAttribute.ItemStackQuantityLo] = 1; + compensation.Attributes[GameAttributes.ItemStackQuantityLo] = gem.Attributes[GameAttributes.ItemStackQuantityLo] - 1; + gem.Attributes[GameAttributes.ItemStackQuantityLo] = 1; _inventoryGrid.RemoveItem(gem); _inventoryGrid.AddItem(compensation); } @@ -2030,7 +2030,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem _owner.SetAttributesByItemProcs(); _owner.SetAttributesByGems(); - item.Attributes[GameAttribute.Sockets_Filled] = item.Gems.Count; + item.Attributes[GameAttributes.Sockets_Filled] = item.Gems.Count; item.Attributes.BroadcastChangedIfRevealed(); _owner.GrantAchievement(74987243307166); @@ -2079,7 +2079,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem gem.Unreveal(_owner); item.Gems.Clear(); - item.Attributes[GameAttribute.Sockets_Filled] = 0; + item.Attributes[GameAttributes.Sockets_Filled] = 0; item.Attributes.BroadcastChangedIfRevealed(); _owner.GrantAchievement(74987243307789); @@ -2090,10 +2090,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem RepairEquipment(); int cost = 0; foreach (var item in GetBackPackItems()) - if (item.Attributes[GameAttribute.Durability_Cur] < item.Attributes[GameAttribute.Durability_Max]) + if (item.Attributes[GameAttributes.Durability_Cur] < item.Attributes[GameAttributes.Durability_Max]) { - cost += (int)((item.GetPrice() * (item.Attributes[GameAttribute.Durability_Max] - item.Attributes[GameAttribute.Durability_Cur])) / (item.Attributes[GameAttribute.Durability_Max] * 25)); - item.UpdateDurability(item.Attributes[GameAttribute.Durability_Max]); + cost += (int)((item.GetPrice() * (item.Attributes[GameAttributes.Durability_Max] - item.Attributes[GameAttributes.Durability_Cur])) / (item.Attributes[GameAttributes.Durability_Max] * 25)); + item.UpdateDurability(item.Attributes[GameAttributes.Durability_Max]); } RemoveGoldAmount(cost); } @@ -2102,10 +2102,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem { int cost = 0; foreach (var item in GetEquippedItems()) - if (item.Attributes[GameAttribute.Durability_Cur] < item.Attributes[GameAttribute.Durability_Max]) + if (item.Attributes[GameAttributes.Durability_Cur] < item.Attributes[GameAttributes.Durability_Max]) { - cost += (int)((item.GetPrice() * (item.Attributes[GameAttribute.Durability_Max] - item.Attributes[GameAttribute.Durability_Cur])) / (item.Attributes[GameAttribute.Durability_Max] * 25)); - item.UpdateDurability(item.Attributes[GameAttribute.Durability_Max]); + cost += (int)((item.GetPrice() * (item.Attributes[GameAttributes.Durability_Max] - item.Attributes[GameAttributes.Durability_Cur])) / (item.Attributes[GameAttributes.Durability_Max] * 25)); + item.UpdateDurability(item.Attributes[GameAttributes.Durability_Max]); } RemoveGoldAmount(cost); _owner.GrantAchievement(74987243307773); @@ -2113,19 +2113,19 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem public void PickUpGold(Item item) { - int amount = item.Attributes[GameAttribute.Gold];//item.Attributes[GameAttribute.ItemStackQuantityLo]; + int amount = item.Attributes[GameAttributes.Gold];//item.Attributes[GameAttribute.ItemStackQuantityLo]; AddGoldAmount(amount, false); } public void PickUpBloodShard(Item item) { - int amount = item.Attributes[GameAttribute.ItemStackQuantityLo]; + int amount = item.Attributes[GameAttributes.ItemStackQuantityLo]; AddBloodShardsAmount(amount, false); } public void PickUpPlatinum(Item item) { - int amount = item.Attributes[GameAttribute.ItemStackQuantityLo]; + int amount = item.Attributes[GameAttributes.ItemStackQuantityLo]; AddPlatinumAmount(amount); } @@ -2215,7 +2215,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem public bool HasGold(int amount) { - return _inventoryGold.Attributes[GameAttribute.Gold] >= amount; + return _inventoryGold.Attributes[GameAttributes.Gold] >= amount; } public Item GetEquippedWeapon() @@ -2232,8 +2232,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem public void AddGoldAmount(int amount, bool immediately = true) { - _inventoryGold.Attributes[GameAttribute.Gold] += amount; - _inventoryGold.Attributes[GameAttribute.ItemStackQuantityLo] = _inventoryGold.Attributes[GameAttribute.Gold]; + _inventoryGold.Attributes[GameAttributes.Gold] += amount; + _inventoryGold.Attributes[GameAttributes.ItemStackQuantityLo] = _inventoryGold.Attributes[GameAttributes.Gold]; _inventoryGold.Attributes.SendChangedMessage(_owner.InGameClient); if (immediately) { @@ -2246,8 +2246,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem public void RemoveGoldAmount(int amount) { - _inventoryGold.Attributes[GameAttribute.Gold] -= amount; - _inventoryGold.Attributes[GameAttribute.ItemStackQuantityLo] = _inventoryGold.Attributes[GameAttribute.Gold]; + _inventoryGold.Attributes[GameAttributes.Gold] -= amount; + _inventoryGold.Attributes[GameAttributes.ItemStackQuantityLo] = _inventoryGold.Attributes[GameAttributes.Gold]; _inventoryGold.Attributes.SendChangedMessage(_owner.InGameClient); _owner.Toon.GameAccount.Gold -= (ulong)amount; UpdateCurrencies(); @@ -2259,7 +2259,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (_inventoryGold != null) { //Logger.Warn($"InventoryGold is not null: $[yellow]${_inventoryGold.Attributes[GameAttribute.Gold]} / {_owner.Toon.GameAccount.Gold}$[/]$"); - return _inventoryGold.Attributes[GameAttribute.Gold]; + return _inventoryGold.Attributes[GameAttributes.Gold]; } else { @@ -2271,9 +2271,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem public void AddBloodShardsAmount(int amount, bool immediately = true) { - int C1 = 0; foreach (var item in FindSameItems(-363607620)) C1 += item.Attributes[GameAttribute.ItemStackQuantityLo]; - int C2 = 0; foreach (var item in FindSameItems(-1585802162)) C2 += item.Attributes[GameAttribute.ItemStackQuantityLo]; - int C3 = 0; foreach (var item in FindSameItems(-605947593)) C3 += item.Attributes[GameAttribute.ItemStackQuantityLo]; + int C1 = 0; foreach (var item in FindSameItems(-363607620)) C1 += item.Attributes[GameAttributes.ItemStackQuantityLo]; + int C2 = 0; foreach (var item in FindSameItems(-1585802162)) C2 += item.Attributes[GameAttributes.ItemStackQuantityLo]; + int C3 = 0; foreach (var item in FindSameItems(-605947593)) C3 += item.Attributes[GameAttributes.ItemStackQuantityLo]; var Moneys = D3.Items.CurrencySavedData.CreateBuilder(); D3.Items.CurrencyData GoldData = D3.Items.CurrencyData.CreateBuilder().SetId(0).SetCount((long)GetGoldAmount()).Build(); @@ -2361,10 +2361,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem var slots = _owner.World.Game.GameDbSession.SessionGet(_owner.Toon.GameAccount.PersistentID).StashSize; if (slots > 0) { - _owner.Attributes[GameAttribute.Shared_Stash_Slots] = slots; + _owner.Attributes[GameAttributes.Shared_Stash_Slots] = slots; _owner.Attributes.BroadcastChangedIfRevealed(); // To be applied before loading items, to have all the space needed - _stashGrid.ResizeGrid(_owner.Attributes[GameAttribute.Shared_Stash_Slots] / 7, 7); + _stashGrid.ResizeGrid(_owner.Attributes[GameAttributes.Shared_Stash_Slots] / 7, 7); } @@ -2414,10 +2414,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem //}).ContinueWith((a) =>{ _inventoryGold = ItemGenerator.CreateGold(_owner, goldAmount); - _inventoryGold.Attributes[GameAttribute.Gold] = goldAmount; + _inventoryGold.Attributes[GameAttributes.Gold] = goldAmount; // Logger.Warn($"User {this._owner.Toon.PersistentID} - inventory gold has {_inventoryGold.Attributes[GameAttribute.Gold]} gold."); - _inventoryGold.Attributes[GameAttribute.ItemStackQuantityLo] = goldAmount; // This is the attribute that makes the gold visible in gamethe gold visible in game + _inventoryGold.Attributes[GameAttributes.ItemStackQuantityLo] = goldAmount; // This is the attribute that makes the gold visible in gamethe gold visible in game _inventoryGold.Owner = _owner; _inventoryGold.SetInventoryLocation((int)EquipmentSlotId.Gold, 0, 0); _inventoryGold.Attributes.SendChangedMessage(_owner.InGameClient); @@ -2605,14 +2605,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem { if (!Loaded) return _owner.Attributes[attributeF]; - var stats = GetEquippedItems().Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 || item.Attributes[GameAttribute.Durability_Max] == 0); + var stats = GetEquippedItems().Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 || item.Attributes[GameAttributes.Durability_Max] == 0); return stats.Sum(item => item.Attributes[attributeF]); } public int GetItemBonus(GameAttributeI attributeI) { - return Loaded ? GetEquippedItems().Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 || item.Attributes[GameAttribute.Durability_Max] == 0).Sum(item => item.Attributes[attributeI]) : _owner.Attributes[attributeI]; + return Loaded ? GetEquippedItems().Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 || item.Attributes[GameAttributes.Durability_Max] == 0).Sum(item => item.Attributes[attributeI]) : _owner.Attributes[attributeI]; } public bool GetItemBonus(GameAttributeB attributeB) @@ -2622,12 +2622,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem public float GetItemBonus(GameAttributeF attributeF, int attributeKey) { - return Loaded ? GetEquippedItems().Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 || item.Attributes[GameAttribute.Durability_Max] == 0).Sum(item => item.Attributes[attributeF, attributeKey]) : _owner.Attributes[attributeF]; + return Loaded ? GetEquippedItems().Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 || item.Attributes[GameAttributes.Durability_Max] == 0).Sum(item => item.Attributes[attributeF, attributeKey]) : _owner.Attributes[attributeF]; } public int GetItemBonus(GameAttributeI attributeI, int attributeKey) { - return Loaded ? GetEquippedItems().Where(item => item.Attributes[GameAttribute.Durability_Cur] > 0 || item.Attributes[GameAttribute.Durability_Max] == 0).Sum(item => item.Attributes[attributeI, attributeKey]) : _owner.Attributes[attributeI]; + return Loaded ? GetEquippedItems().Where(item => item.Attributes[GameAttributes.Durability_Cur] > 0 || item.Attributes[GameAttributes.Durability_Max] == 0).Sum(item => item.Attributes[attributeI, attributeKey]) : _owner.Attributes[attributeI]; } public void SetGemBonuses() @@ -2646,7 +2646,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (FormulaScript.Evaluate(attr.Formula.ToArray(), new ItemRandomHelper(35674658), out result)) { //Logger.Info("attr: {0}, {1} {2}", attr.AttributeId, attr.SNOParam, result); - var attrib = GameAttribute.Attributes[attr.AttributeId] as GameAttributeF; + var attrib = GameAttributes.Attributes[attr.AttributeId] as GameAttributeF; //if (attrib == GameAttribute.Dexterity_Item || attrib == GameAttribute.Vitality_Item || attrib == GameAttribute.Strength_Item || attrib == GameAttribute.Intelligence_Item) result /= 1065353216; //dat shit is crazy if (attr.SNOParam != -1) _owner.Attributes[attrib, attr.SNOParam] += result; @@ -2678,8 +2678,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem if (FormulaScript.Evaluate(attr.Formula.ToArray(), new ItemRandomHelper(35674658), out result)) { //Logger.Debug("attr: {0}, {1} {2}", attr.AttributeId, attr.SNOParam, result); - var attrib = GameAttribute.Attributes[attr.AttributeId] as GameAttributeF; - if (attrib == GameAttribute.Dexterity_Item || attrib == GameAttribute.Vitality_Item || attrib == GameAttribute.Strength_Item || attrib == GameAttribute.Intelligence_Item) result /= 1065353216; //dat shit is crazy + var attrib = GameAttributes.Attributes[attr.AttributeId] as GameAttributeF; + if (attrib == GameAttributes.Dexterity_Item || attrib == GameAttributes.Vitality_Item || attrib == GameAttributes.Strength_Item || attrib == GameAttributes.Intelligence_Item) result /= 1065353216; //dat shit is crazy if (attr.SNOParam != -1) _owner.Attributes[attrib, attr.SNOParam] += result; else @@ -2687,7 +2687,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem } } } - _owner.Attributes[GameAttribute.Set_Item_Count, set.First().ItemDefinition.SNOSet] = set.Count(); + _owner.Attributes[GameAttributes.Set_Item_Count, set.First().ItemDefinition.SNOSet] = set.Count(); if (set.Count() >= 6) _owner.GrantAchievement(74987243307160); } @@ -2698,9 +2698,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PlayerSystem { foreach (var equip in GetEquippedItems()) { - if (equip.Attributes[GameAttribute.Item_Indestructible] == false) + if (equip.Attributes[GameAttributes.Item_Indestructible] == false) { - equip.UpdateDurability(Math.Max(0, (equip.Attributes[GameAttribute.Durability_Cur] - (int)((float)equip.Attributes[GameAttribute.Durability_Max] * percent)))); + equip.UpdateDurability(Math.Max(0, (equip.Attributes[GameAttributes.Durability_Cur] - (int)((float)equip.Attributes[GameAttributes.Durability_Max] * percent)))); equip.Attributes.SendChangedMessage(_owner.InGameClient); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Player.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Player.cs index 8235caa..d5cf05b 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Player.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PlayerSystem/Player.cs @@ -30,7 +30,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Effect; using DiIiS_NA.LoginServer.AccountsSystem; using System.Drawing; -using System.Reflection; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.GSSystem.SkillsSystem; using DiIiS_NA.GameServer.Core.Types.TagMap; @@ -55,11 +54,9 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Camera; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Pet; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Game; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Combat; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Hireling; using DiIiS_NA.Core.Helpers.Hash; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Encounter; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.UI; using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.D3_GameServer.GSSystem.ActorSystem.Implementations.Artisans; using DiIiS_NA.D3_GameServer.GSSystem.PlayerSystem; @@ -233,11 +230,11 @@ public class Player : Actor, IMessageConsumer, IUpdateable } else if (value != _activeHireling) { - HirelingId = value.Attributes[GameAttribute.Hireling_Class]; + HirelingId = value.Attributes[GameAttributes.Hireling_Class]; lock (Toon.DBToon) { var dbToon = Toon.DBToon; - dbToon.ActiveHireling = value.Attributes[GameAttribute.Hireling_Class]; + dbToon.ActiveHireling = value.Attributes[GameAttributes.Hireling_Class]; DBSessions.SessionUpdate(dbToon); } } @@ -345,12 +342,12 @@ public class Player : Actor, IMessageConsumer, IUpdateable // Attributes if (World.Game.PvP) - Attributes[GameAttribute.TeamID] = PlayerIndex + 2; + Attributes[GameAttributes.TeamID] = PlayerIndex + 2; else - Attributes[GameAttribute.TeamID] = 2; + Attributes[GameAttributes.TeamID] = 2; //make sure if greater is not active enable banner. - if (!World.Game.NephalemGreater) Attributes[GameAttribute.Banner_Usable] = true; + if (!World.Game.NephalemGreater) Attributes[GameAttributes.Banner_Usable] = true; SetAllStatsInCorrectOrder(); // Enabled stone of recall if (!World.Game.PvP & Toon.StoneOfPortal) @@ -368,7 +365,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable LearnedLore.Count = lores.Count(); - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; Attributes.BroadcastChangedIfRevealed(); } @@ -399,19 +396,19 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void SetAttributesSkills() { //Skills - Attributes[GameAttribute.SkillKit] = Toon.HeroTable.SNOSKillKit0; + Attributes[GameAttributes.SkillKit] = Toon.HeroTable.SNOSKillKit0; - Attributes[GameAttribute.Buff_Icon_Start_Tick0, 0x00033C40] = 153; - Attributes[GameAttribute.Buff_Icon_End_Tick0, 0x00033C40] = 3753; - Attributes[GameAttribute.Buff_Icon_Count0, 0x0006B48E] = 1; - Attributes[GameAttribute.Buff_Icon_Count0, 0x0004601B] = 1; - Attributes[GameAttribute.Buff_Icon_Count0, 0x00033C40] = 1; + Attributes[GameAttributes.Buff_Icon_Start_Tick0, 0x00033C40] = 153; + Attributes[GameAttributes.Buff_Icon_End_Tick0, 0x00033C40] = 3753; + Attributes[GameAttributes.Buff_Icon_Count0, 0x0006B48E] = 1; + Attributes[GameAttributes.Buff_Icon_Count0, 0x0004601B] = 1; + Attributes[GameAttributes.Buff_Icon_Count0, 0x00033C40] = 1; - Attributes[GameAttribute.Currencies_Discovered] = 0x0011FFF8; + Attributes[GameAttributes.Currencies_Discovered] = 0x0011FFF8; - Attributes[GameAttribute.Skill, 30592] = 1; - Attributes[GameAttribute.Resource_Degeneration_Prevented] = false; - Attributes[GameAttribute.Resource_Degeneration_Stop_Point] = 0; + Attributes[GameAttributes.Skill, 30592] = 1; + Attributes[GameAttributes.Resource_Degeneration_Prevented] = false; + Attributes[GameAttributes.Resource_Degeneration_Stop_Point] = 0; //scripted //this.Attributes[GameAttribute.Skill_Total, 0x7545] = 1; //Axe Operate Gizmo //scripted //this.Attributes[GameAttribute.Skill_Total, 0x76B7] = 1; //Punch! //scripted //this.Attributes[GameAttribute.Skill_Total, 0x6DF] = 1; //Use Item @@ -423,77 +420,77 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void SetAttributesBuffs() { //Buffs - Attributes[GameAttribute.Buff_Exclusive_Type_Active, 0x33C40] = true; - Attributes[GameAttribute.Buff_Icon_End_Tick0, 0x00033C40] = 0x000003FB; - Attributes[GameAttribute.Buff_Icon_Start_Tick0, 0x00033C40] = 0x00000077; - Attributes[GameAttribute.Buff_Icon_Count0, 0x00033C40] = 1; - Attributes[GameAttribute.Buff_Exclusive_Type_Active, 0xCE11] = true; - Attributes[GameAttribute.Buff_Icon_Count0, 0x0000CE11] = 1; - Attributes[GameAttribute.Buff_Visual_Effect, 0xFFFFF] = true; + Attributes[GameAttributes.Buff_Exclusive_Type_Active, 0x33C40] = true; + Attributes[GameAttributes.Buff_Icon_End_Tick0, 0x00033C40] = 0x000003FB; + Attributes[GameAttributes.Buff_Icon_Start_Tick0, 0x00033C40] = 0x00000077; + Attributes[GameAttributes.Buff_Icon_Count0, 0x00033C40] = 1; + Attributes[GameAttributes.Buff_Exclusive_Type_Active, 0xCE11] = true; + Attributes[GameAttributes.Buff_Icon_Count0, 0x0000CE11] = 1; + Attributes[GameAttributes.Buff_Visual_Effect, 0xFFFFF] = true; //Wings if (CurrentWingsPowerId != -1) { - Attributes[GameAttribute.Buff_Exclusive_Type_Active, CurrentWingsPowerId] = true; - Attributes[GameAttribute.Power_Buff_0_Visual_Effect_None, CurrentWingsPowerId] = true; - Attributes[GameAttribute.Buff_Icon_Start_Tick0, CurrentWingsPowerId] = 0; - Attributes[GameAttribute.Buff_Icon_End_Tick0, CurrentWingsPowerId] = 100; - Attributes[GameAttribute.Buff_Icon_Count0, CurrentWingsPowerId] = 1; + Attributes[GameAttributes.Buff_Exclusive_Type_Active, CurrentWingsPowerId] = true; + Attributes[GameAttributes.Power_Buff_0_Visual_Effect_None, CurrentWingsPowerId] = true; + Attributes[GameAttributes.Buff_Icon_Start_Tick0, CurrentWingsPowerId] = 0; + Attributes[GameAttributes.Buff_Icon_End_Tick0, CurrentWingsPowerId] = 100; + Attributes[GameAttributes.Buff_Icon_Count0, CurrentWingsPowerId] = 1; } } public void SetAttributesDamage() { - Attributes[GameAttribute.Primary_Damage_Attribute] = (int)Toon.HeroTable.CoreAttribute + 1; - Attributes[GameAttribute.Attacks_Per_Second_Percent_Cap] = 4f; + Attributes[GameAttributes.Primary_Damage_Attribute] = (int)Toon.HeroTable.CoreAttribute + 1; + Attributes[GameAttributes.Attacks_Per_Second_Percent_Cap] = 4f; } public void SetAttributesRessources() { - Attributes[GameAttribute.Resource_Type_Primary] = (int)Toon.HeroTable.PrimaryResource + 1; - Attributes[GameAttribute.Resource_Max, Attributes[GameAttribute.Resource_Type_Primary] - 1] = + Attributes[GameAttributes.Resource_Type_Primary] = (int)Toon.HeroTable.PrimaryResource + 1; + Attributes[GameAttributes.Resource_Max, Attributes[GameAttributes.Resource_Type_Primary] - 1] = Toon.HeroTable.PrimaryResourceBase; - Attributes[GameAttribute.Resource_Max_Bonus, Attributes[GameAttribute.Resource_Type_Primary] - 1] = 0; - Attributes[GameAttribute.Resource_Factor_Level, Attributes[GameAttribute.Resource_Type_Primary] - 1] = + Attributes[GameAttributes.Resource_Max_Bonus, Attributes[GameAttributes.Resource_Type_Primary] - 1] = 0; + Attributes[GameAttributes.Resource_Factor_Level, Attributes[GameAttributes.Resource_Type_Primary] - 1] = Toon.HeroTable.PrimaryResourceFactorLevel; - Attributes[GameAttribute.Resource_Percent, Attributes[GameAttribute.Resource_Type_Primary] - 1] = 0; - Attributes[GameAttribute.Resource_Cur, (int)Attributes[GameAttribute.Resource_Type_Primary]] = - GetMaxResource((int)Attributes[GameAttribute.Resource_Type_Primary] - 1); + Attributes[GameAttributes.Resource_Percent, Attributes[GameAttributes.Resource_Type_Primary] - 1] = 0; + Attributes[GameAttributes.Resource_Cur, (int)Attributes[GameAttributes.Resource_Type_Primary]] = + GetMaxResource((int)Attributes[GameAttributes.Resource_Type_Primary] - 1); - var max = Attributes[GameAttribute.Resource_Max, (int)Attributes[GameAttribute.Resource_Type_Primary] - 1]; - var cur = Attributes[GameAttribute.Resource_Cur, (int)Attributes[GameAttribute.Resource_Type_Primary] - 1]; + var max = Attributes[GameAttributes.Resource_Max, (int)Attributes[GameAttributes.Resource_Type_Primary] - 1]; + var cur = Attributes[GameAttributes.Resource_Cur, (int)Attributes[GameAttributes.Resource_Type_Primary] - 1]; - Attributes[GameAttribute.Resource_Regen_Per_Second, (int)Attributes[GameAttribute.Resource_Type_Primary] - 1] = + Attributes[GameAttributes.Resource_Regen_Per_Second, (int)Attributes[GameAttributes.Resource_Type_Primary] - 1] = Toon.HeroTable.PrimaryResourceRegen; - Attributes[GameAttribute.Resource_Regen_Stop_Regen] = false; + Attributes[GameAttributes.Resource_Regen_Stop_Regen] = false; if (Toon.Class == ToonClass.Barbarian) - Attributes[GameAttribute.Resource_Cur, (int)Toon.HeroTable.PrimaryResource + 1] = 0; + Attributes[GameAttributes.Resource_Cur, (int)Toon.HeroTable.PrimaryResource + 1] = 0; else - Attributes[GameAttribute.Resource_Cur, (int)Toon.HeroTable.PrimaryResource + 1] = + Attributes[GameAttributes.Resource_Cur, (int)Toon.HeroTable.PrimaryResource + 1] = (int)GetMaxResource((int)Toon.HeroTable.PrimaryResource + 1) * 100; if (Toon.HeroTable.SecondaryResource != GameBalance.HeroTable.Resource.None) { - Attributes[GameAttribute.Resource_Type_Secondary] = (int)Toon.HeroTable.SecondaryResource + 1; - Attributes[GameAttribute.Resource_Max, (int)Attributes[GameAttribute.Resource_Type_Secondary] - 1] = + Attributes[GameAttributes.Resource_Type_Secondary] = (int)Toon.HeroTable.SecondaryResource + 1; + Attributes[GameAttributes.Resource_Max, (int)Attributes[GameAttributes.Resource_Type_Secondary] - 1] = Toon.HeroTable.SecondaryResourceBase; - Attributes[GameAttribute.Resource_Max_Bonus, Attributes[GameAttribute.Resource_Type_Secondary] - 1] = 0; - Attributes[GameAttribute.Resource_Percent, Attributes[GameAttribute.Resource_Type_Secondary] - 1] = 0; - Attributes[GameAttribute.Resource_Factor_Level, - (int)Attributes[GameAttribute.Resource_Type_Secondary] - 1] = + Attributes[GameAttributes.Resource_Max_Bonus, Attributes[GameAttributes.Resource_Type_Secondary] - 1] = 0; + Attributes[GameAttributes.Resource_Percent, Attributes[GameAttributes.Resource_Type_Secondary] - 1] = 0; + Attributes[GameAttributes.Resource_Factor_Level, + (int)Attributes[GameAttributes.Resource_Type_Secondary] - 1] = Toon.HeroTable.SecondaryResourceFactorLevel; - Attributes[GameAttribute.Resource_Cur, (int)Attributes[GameAttribute.Resource_Type_Secondary] - 1] = + Attributes[GameAttributes.Resource_Cur, (int)Attributes[GameAttributes.Resource_Type_Secondary] - 1] = GetMaxResource((int)Toon.HeroTable.SecondaryResource + 1); - Attributes[GameAttribute.Resource_Regen_Per_Second, - (int)Attributes[GameAttribute.Resource_Type_Secondary] - 1] = Toon.HeroTable.SecondaryResourceRegen; + Attributes[GameAttributes.Resource_Regen_Per_Second, + (int)Attributes[GameAttributes.Resource_Type_Secondary] - 1] = Toon.HeroTable.SecondaryResourceRegen; } - Attributes[GameAttribute.Get_Hit_Recovery_Per_Level] = (int)Toon.HeroTable.GetHitRecoveryPerLevel; - Attributes[GameAttribute.Get_Hit_Recovery_Base] = (int)Toon.HeroTable.GetHitRecoveryBase; + Attributes[GameAttributes.Get_Hit_Recovery_Per_Level] = (int)Toon.HeroTable.GetHitRecoveryPerLevel; + Attributes[GameAttributes.Get_Hit_Recovery_Base] = (int)Toon.HeroTable.GetHitRecoveryBase; - Attributes[GameAttribute.Get_Hit_Max_Per_Level] = (int)Toon.HeroTable.GetHitMaxPerLevel; - Attributes[GameAttribute.Get_Hit_Max_Base] = (int)Toon.HeroTable.GetHitMaxBase; + Attributes[GameAttributes.Get_Hit_Max_Per_Level] = (int)Toon.HeroTable.GetHitMaxPerLevel; + Attributes[GameAttributes.Get_Hit_Max_Base] = (int)Toon.HeroTable.GetHitMaxBase; } public void SetAttributesClassSpecific() @@ -503,25 +500,25 @@ public class Player : Actor, IMessageConsumer, IUpdateable { case ToonClass.Barbarian: //scripted //this.Attributes[GameAttribute.Skill_Total, 30078] = 1; //Fury Trait - Attributes[GameAttribute.Skill, 30078] = 1; - Attributes[GameAttribute.Trait, 30078] = 1; - Attributes[GameAttribute.Buff_Exclusive_Type_Active, 30078] = true; - Attributes[GameAttribute.Buff_Icon_Count0, 30078] = 1; + Attributes[GameAttributes.Skill, 30078] = 1; + Attributes[GameAttributes.Trait, 30078] = 1; + Attributes[GameAttributes.Buff_Exclusive_Type_Active, 30078] = true; + Attributes[GameAttributes.Buff_Icon_Count0, 30078] = 1; break; case ToonClass.DemonHunter: break; case ToonClass.Crusader: - Attributes[GameAttribute.Skill, 0x000418F2] = 1; - Attributes[GameAttribute.Skill, 0x00045CCF] = 1; - Attributes[GameAttribute.Skill, 0x000564D4] = 1; + Attributes[GameAttributes.Skill, 0x000418F2] = 1; + Attributes[GameAttributes.Skill, 0x00045CCF] = 1; + Attributes[GameAttributes.Skill, 0x000564D4] = 1; break; case ToonClass.Monk: //scripted //this.Attributes[GameAttribute.Skill_Total, 0x0000CE11] = 1; //Spirit Trait - Attributes[GameAttribute.Skill, 0x0000CE11] = 1; - Attributes[GameAttribute.Trait, 0x0000CE11] = 1; - Attributes[GameAttribute.Buff_Exclusive_Type_Active, 0xCE11] = true; - Attributes[GameAttribute.Buff_Icon_Count0, 0x0000CE11] = 1; + Attributes[GameAttributes.Skill, 0x0000CE11] = 1; + Attributes[GameAttributes.Trait, 0x0000CE11] = 1; + Attributes[GameAttributes.Buff_Exclusive_Type_Active, 0xCE11] = true; + Attributes[GameAttributes.Buff_Icon_Count0, 0x0000CE11] = 1; break; case ToonClass.WitchDoctor: break; @@ -532,13 +529,13 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void SetAttributesMovement() { - Attributes[GameAttribute.Movement_Scalar_Cap] = 3f; - Attributes[GameAttribute.Movement_Scalar] = 1f; - Attributes[GameAttribute.Walking_Rate] = Toon.HeroTable.WalkingRate; - Attributes[GameAttribute.Running_Rate] = Toon.HeroTable.RunningRate; - Attributes[GameAttribute.Experience_Bonus] = 0f; - Attributes[GameAttribute.Sprinting_Rate] = Toon.HeroTable.SprintRate * 2; - Attributes[GameAttribute.Strafing_Rate] = Toon.HeroTable.SprintRate * 2; + Attributes[GameAttributes.Movement_Scalar_Cap] = 3f; + Attributes[GameAttributes.Movement_Scalar] = 1f; + Attributes[GameAttributes.Walking_Rate] = Toon.HeroTable.WalkingRate; + Attributes[GameAttributes.Running_Rate] = Toon.HeroTable.RunningRate; + Attributes[GameAttributes.Experience_Bonus] = 0f; + Attributes[GameAttributes.Sprinting_Rate] = Toon.HeroTable.SprintRate * 2; + Attributes[GameAttributes.Strafing_Rate] = Toon.HeroTable.SprintRate * 2; } public void SetAttributesMisc() @@ -559,22 +556,22 @@ public class Player : Actor, IMessageConsumer, IUpdateable this.Attributes[GameAttribute.Backpack_Slots] = 60; this.Attributes[GameAttribute.General_Cooldown] = 0; //*/ - Attributes[GameAttribute.Disabled] = true; // we should be making use of these ones too /raist. - Attributes[GameAttribute.Loading] = true; - Attributes[GameAttribute.Loading_Player_ACD] = PlayerIndex; - Attributes[GameAttribute.Invulnerable] = true; - Attributes[GameAttribute.Hidden] = false; - Attributes[GameAttribute.Immobolize] = true; - Attributes[GameAttribute.Untargetable] = true; - Attributes[GameAttribute.CantStartDisplayedPowers] = true; - Attributes[GameAttribute.IsContentRestrictedActor] = true; - Attributes[GameAttribute.Cannot_Dodge] = false; - Attributes[GameAttribute.Trait, 0x0000CE11] = 1; - Attributes[GameAttribute.TeamID] = 2; - Attributes[GameAttribute.Stash_Tabs_Purchased_With_Gold] = 5; // what do these do? - Attributes[GameAttribute.Stash_Tabs_Rewarded_By_Achievements] = 5; - Attributes[GameAttribute.Backpack_Slots] = 60; - Attributes[GameAttribute.General_Cooldown] = 0; + Attributes[GameAttributes.Disabled] = true; // we should be making use of these ones too /raist. + Attributes[GameAttributes.Loading] = true; + Attributes[GameAttributes.Loading_Player_ACD] = PlayerIndex; + Attributes[GameAttributes.Invulnerable] = true; + Attributes[GameAttributes.Hidden] = false; + Attributes[GameAttributes.Immobolize] = true; + Attributes[GameAttributes.Untargetable] = true; + Attributes[GameAttributes.CantStartDisplayedPowers] = true; + Attributes[GameAttributes.IsContentRestrictedActor] = true; + Attributes[GameAttributes.Cannot_Dodge] = false; + Attributes[GameAttributes.Trait, 0x0000CE11] = 1; + Attributes[GameAttributes.TeamID] = 2; + Attributes[GameAttributes.Stash_Tabs_Purchased_With_Gold] = 5; // what do these do? + Attributes[GameAttributes.Stash_Tabs_Rewarded_By_Achievements] = 5; + Attributes[GameAttributes.Backpack_Slots] = 60; + Attributes[GameAttributes.General_Cooldown] = 0; } public void SetAttributesByParagon() @@ -585,13 +582,13 @@ public class Player : Actor, IMessageConsumer, IUpdateable var extraParagonPoints = Math.Max(0, Toon.ParagonLevel - 800); for (var i = 0; i < 4; i++) { - Attributes[GameAttribute.Paragon_Bonus_Points_Available, i] = baseParagonPoints / 4; + Attributes[GameAttributes.Paragon_Bonus_Points_Available, i] = baseParagonPoints / 4; // Process remainder only for base points. - if (i < baseParagonPoints % 4) Attributes[GameAttribute.Paragon_Bonus_Points_Available, i]++; + if (i < baseParagonPoints % 4) Attributes[GameAttributes.Paragon_Bonus_Points_Available, i]++; } // First tab of Paragon (Core) - pos 0. - Attributes[GameAttribute.Paragon_Bonus_Points_Available, 0] += extraParagonPoints; + Attributes[GameAttributes.Paragon_Bonus_Points_Available, 0] += extraParagonPoints; var assigned_bonuses = ParagonBonuses; @@ -601,9 +598,9 @@ public class Player : Actor, IMessageConsumer, IUpdateable { var slot_index = bonus.Category * 4 + bonus.Index - 1; - Attributes[GameAttribute.Paragon_Bonus_Points_Available, bonus.Category] -= assigned_bonuses[slot_index]; + Attributes[GameAttributes.Paragon_Bonus_Points_Available, bonus.Category] -= assigned_bonuses[slot_index]; - Attributes[GameAttribute.Paragon_Bonus, bonus.Hash] = assigned_bonuses[slot_index]; + Attributes[GameAttributes.Paragon_Bonus, bonus.Hash] = assigned_bonuses[slot_index]; float result; if (FormulaScript.Evaluate(bonus.AttributeSpecifiers[0].Formula.ToArray(), new ItemRandomHelper(0), @@ -612,7 +609,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable if (bonus.AttributeSpecifiers[0].AttributeId == 104) //Resistance_All { foreach (var damageType in DamageType.AllTypes) - Attributes[GameAttribute.Resistance, damageType.AttributeKey] += + Attributes[GameAttributes.Resistance, damageType.AttributeKey] += result * assigned_bonuses[slot_index]; } else @@ -621,18 +618,18 @@ public class Player : Actor, IMessageConsumer, IUpdateable if (bonus.AttributeSpecifiers[0].AttributeId == 342) result = 16.5f; //Hitpoints_On_Hit - if (GameAttribute.Attributes[bonus.AttributeSpecifiers[0].AttributeId] is GameAttributeF) + if (GameAttributes.Attributes[bonus.AttributeSpecifiers[0].AttributeId] is GameAttributeF) { - var attr = GameAttribute.Attributes[bonus.AttributeSpecifiers[0].AttributeId] as GameAttributeF; + var attr = GameAttributes.Attributes[bonus.AttributeSpecifiers[0].AttributeId] as GameAttributeF; if (bonus.AttributeSpecifiers[0].SNOParam != -1) Attributes[attr, bonus.AttributeSpecifiers[0].SNOParam] += result * assigned_bonuses[slot_index]; else Attributes[attr] += result * assigned_bonuses[slot_index]; } - else if (GameAttribute.Attributes[bonus.AttributeSpecifiers[0].AttributeId] is GameAttributeI) + else if (GameAttributes.Attributes[bonus.AttributeSpecifiers[0].AttributeId] is GameAttributeI) { - var attr = GameAttribute.Attributes[bonus.AttributeSpecifiers[0].AttributeId] as GameAttributeI; + var attr = GameAttributes.Attributes[bonus.AttributeSpecifiers[0].AttributeId] as GameAttributeI; if (bonus.AttributeSpecifiers[0].SNOParam != -1) Attributes[attr, bonus.AttributeSpecifiers[0].SNOParam] += (int)(result * assigned_bonuses[slot_index]); @@ -650,10 +647,10 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void SetAttributesByItems() { const float nonPhysDefault = 0f; //was 3.051758E-05f - var MaxHPOld = Attributes[GameAttribute.Hitpoints_Max_Total]; - var PercentOfOld = Attributes[GameAttribute.Hitpoints_Max_Total] / 100; - PercHPbeforeChange = Attributes[GameAttribute.Hitpoints_Cur] / - (Attributes[GameAttribute.Hitpoints_Max_Total] / 100); + var MaxHPOld = Attributes[GameAttributes.Hitpoints_Max_Total]; + var PercentOfOld = Attributes[GameAttributes.Hitpoints_Max_Total] / 100; + PercHPbeforeChange = Attributes[GameAttributes.Hitpoints_Cur] / + (Attributes[GameAttributes.Hitpoints_Max_Total] / 100); ; var damageAttributeMinValues = new Dictionary @@ -673,54 +670,54 @@ public class Player : Actor, IMessageConsumer, IUpdateable //var weaponDamageMin = damageType.AttributeKey == 0 ? this.Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Min, 0) : (this.Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Min, 0) + Math.Max(this.Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Min, damageType.AttributeKey), damageAttributeMinValues[damageType][0])); //var weaponDamageDelta = damageType.AttributeKey == 0 ? this.Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Min, 0) : (this.Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Delta, 0) + Math.Max(this.Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Delta, damageType.AttributeKey), damageAttributeMinValues[damageType][1])); - Attributes[GameAttribute.Damage_Weapon_Min, damageType.AttributeKey] = - Math.Max(Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Min_Total, damageType.AttributeKey), + Attributes[GameAttributes.Damage_Weapon_Min, damageType.AttributeKey] = + Math.Max(Inventory.GetItemBonus(GameAttributes.Damage_Weapon_Min_Total, damageType.AttributeKey), damageAttributeMinValues[damageType][0]) + - Inventory.GetItemBonus(GameAttribute.Damage_Min, damageType.AttributeKey); - Attributes[GameAttribute.Damage_Weapon_Min, damageType.AttributeKey] -= + Inventory.GetItemBonus(GameAttributes.Damage_Min, damageType.AttributeKey); + Attributes[GameAttributes.Damage_Weapon_Min, damageType.AttributeKey] -= Inventory.AdjustDualWieldMin(damageType); //Damage on weapons should not add when dual-wielding - Attributes[GameAttribute.Damage_Weapon_Delta, damageType.AttributeKey] = - Math.Max(Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Delta_Total, damageType.AttributeKey), + Attributes[GameAttributes.Damage_Weapon_Delta, damageType.AttributeKey] = + Math.Max(Inventory.GetItemBonus(GameAttributes.Damage_Weapon_Delta_Total, damageType.AttributeKey), damageAttributeMinValues[damageType][1]) + - Inventory.GetItemBonus(GameAttribute.Damage_Delta, damageType.AttributeKey); - Attributes[GameAttribute.Damage_Weapon_Delta, damageType.AttributeKey] -= + Inventory.GetItemBonus(GameAttributes.Damage_Delta, damageType.AttributeKey); + Attributes[GameAttributes.Damage_Weapon_Delta, damageType.AttributeKey] -= Inventory.AdjustDualWieldDelta(damageType); //Damage on weapons should not add when dual-wielding - Attributes[GameAttribute.Damage_Weapon_Bonus_Min, damageType.AttributeKey] = 0f; - Attributes[GameAttribute.Damage_Weapon_Bonus_Min_X1, damageType.AttributeKey] = 0f; - Attributes[GameAttribute.Damage_Weapon_Bonus_Delta, damageType.AttributeKey] = 0f; - Attributes[GameAttribute.Damage_Weapon_Bonus_Delta_X1, damageType.AttributeKey] = 0f; - Attributes[GameAttribute.Damage_Weapon_Bonus_Flat, damageType.AttributeKey] = 0f; + Attributes[GameAttributes.Damage_Weapon_Bonus_Min, damageType.AttributeKey] = 0f; + Attributes[GameAttributes.Damage_Weapon_Bonus_Min_X1, damageType.AttributeKey] = 0f; + Attributes[GameAttributes.Damage_Weapon_Bonus_Delta, damageType.AttributeKey] = 0f; + Attributes[GameAttributes.Damage_Weapon_Bonus_Delta_X1, damageType.AttributeKey] = 0f; + Attributes[GameAttributes.Damage_Weapon_Bonus_Flat, damageType.AttributeKey] = 0f; - Attributes[GameAttribute.Damage_Type_Percent_Bonus, damageType.AttributeKey] = - Inventory.GetItemBonus(GameAttribute.Damage_Type_Percent_Bonus, damageType.AttributeKey); - Attributes[GameAttribute.Damage_Dealt_Percent_Bonus, damageType.AttributeKey] = - Inventory.GetItemBonus(GameAttribute.Damage_Dealt_Percent_Bonus, damageType.AttributeKey); + Attributes[GameAttributes.Damage_Type_Percent_Bonus, damageType.AttributeKey] = + Inventory.GetItemBonus(GameAttributes.Damage_Type_Percent_Bonus, damageType.AttributeKey); + Attributes[GameAttributes.Damage_Dealt_Percent_Bonus, damageType.AttributeKey] = + Inventory.GetItemBonus(GameAttributes.Damage_Dealt_Percent_Bonus, damageType.AttributeKey); - Attributes[GameAttribute.Resistance, damageType.AttributeKey] = - Inventory.GetItemBonus(GameAttribute.Resistance, damageType.AttributeKey); - Attributes[GameAttribute.Damage_Percent_Reduction_From_Type, damageType.AttributeKey] = - Inventory.GetItemBonus(GameAttribute.Damage_Percent_Reduction_From_Type, damageType.AttributeKey); - Attributes[GameAttribute.Amplify_Damage_Type_Percent, damageType.AttributeKey] = - Inventory.GetItemBonus(GameAttribute.Amplify_Damage_Type_Percent, damageType.AttributeKey); + Attributes[GameAttributes.Resistance, damageType.AttributeKey] = + Inventory.GetItemBonus(GameAttributes.Resistance, damageType.AttributeKey); + Attributes[GameAttributes.Damage_Percent_Reduction_From_Type, damageType.AttributeKey] = + Inventory.GetItemBonus(GameAttributes.Damage_Percent_Reduction_From_Type, damageType.AttributeKey); + Attributes[GameAttributes.Amplify_Damage_Type_Percent, damageType.AttributeKey] = + Inventory.GetItemBonus(GameAttributes.Amplify_Damage_Type_Percent, damageType.AttributeKey); } for (var i = 0; i < 4; i++) - Attributes[GameAttribute.Damage_Percent_Bonus_Vs_Monster_Type, i] = - Inventory.GetItemBonus(GameAttribute.Damage_Percent_Bonus_Vs_Monster_Type, i); + Attributes[GameAttributes.Damage_Percent_Bonus_Vs_Monster_Type, i] = + Inventory.GetItemBonus(GameAttributes.Damage_Percent_Bonus_Vs_Monster_Type, i); - Attributes[GameAttribute.Resistance_All] = Inventory.GetItemBonus(GameAttribute.Resistance_All); - Attributes[GameAttribute.Resistance_Percent_All] = Inventory.GetItemBonus(GameAttribute.Resistance_Percent_All); - Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] = - Inventory.GetItemBonus(GameAttribute.Damage_Percent_Reduction_From_Melee); - Attributes[GameAttribute.Damage_Percent_Reduction_From_Ranged] = - Inventory.GetItemBonus(GameAttribute.Damage_Percent_Reduction_From_Ranged); + Attributes[GameAttributes.Resistance_All] = Inventory.GetItemBonus(GameAttributes.Resistance_All); + Attributes[GameAttributes.Resistance_Percent_All] = Inventory.GetItemBonus(GameAttributes.Resistance_Percent_All); + Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] = + Inventory.GetItemBonus(GameAttributes.Damage_Percent_Reduction_From_Melee); + Attributes[GameAttributes.Damage_Percent_Reduction_From_Ranged] = + Inventory.GetItemBonus(GameAttributes.Damage_Percent_Reduction_From_Ranged); - Attributes[GameAttribute.Thorns_Fixed, 0] = Inventory.GetItemBonus(GameAttribute.Thorns_Fixed, 0); + Attributes[GameAttributes.Thorns_Fixed, 0] = Inventory.GetItemBonus(GameAttributes.Thorns_Fixed, 0); //this.Attributes[GameAttribute.Armor_Item_Percent] = this.Inventory.GetItemBonus(GameAttribute.Armor_Item_Percent); - var allStatsBonus = Inventory.GetItemBonus(GameAttribute.Stats_All_Bonus); // / 1065353216; + var allStatsBonus = Inventory.GetItemBonus(GameAttributes.Stats_All_Bonus); // / 1065353216; /* this.Attributes[GameAttribute.Armor_Item] = this.Inventory.GetItemBonus(GameAttribute.Armor_Item_Total); this.Attributes[GameAttribute.Strength_Item] = this.Inventory.GetItemBonus(GameAttribute.Dexterity_Item);// / 1065353216; @@ -733,327 +730,326 @@ public class Player : Actor, IMessageConsumer, IUpdateable this.Attributes[GameAttribute.Vitality_Item] += allStatsBonus; //*/ //* - Attributes[GameAttribute.Strength_Item] = Inventory.GetItemBonus(GameAttribute.Strength_Item); // / 1065353216; - Attributes[GameAttribute.Strength_Item] += allStatsBonus; - Attributes[GameAttribute.Vitality_Item] = Inventory.GetItemBonus(GameAttribute.Vitality_Item); // / 1065353216; - Attributes[GameAttribute.Vitality_Item] += allStatsBonus; - Attributes[GameAttribute.Dexterity_Item] = - Inventory.GetItemBonus(GameAttribute.Dexterity_Item); // / 1065353216; - Attributes[GameAttribute.Dexterity_Item] += allStatsBonus; - Attributes[GameAttribute.Intelligence_Item] = - Inventory.GetItemBonus(GameAttribute - .Intelligence_Item); // / 1065353216; //I know that's wild, but client can't display it properly... - Attributes[GameAttribute.Intelligence_Item] += allStatsBonus; + Attributes[GameAttributes.Strength_Item] = Inventory.GetItemBonus(GameAttributes.Strength_Item); // / 1065353216; + Attributes[GameAttributes.Strength_Item] += allStatsBonus; + Attributes[GameAttributes.Vitality_Item] = Inventory.GetItemBonus(GameAttributes.Vitality_Item); // / 1065353216; + Attributes[GameAttributes.Vitality_Item] += allStatsBonus; + Attributes[GameAttributes.Dexterity_Item] = + Inventory.GetItemBonus(GameAttributes.Dexterity_Item); // / 1065353216; + Attributes[GameAttributes.Dexterity_Item] += allStatsBonus; + Attributes[GameAttributes.Intelligence_Item] = + Inventory.GetItemBonus(GameAttributes.Intelligence_Item); // / 1065353216; //I know that's wild, but client can't display it properly... + Attributes[GameAttributes.Intelligence_Item] += allStatsBonus; //*/ //this.Attributes[GameAttribute.Cube_Enchanted_Strength_Item] = 0; - Attributes[GameAttribute.Core_Attributes_From_Item_Bonus_Multiplier] = 1; + Attributes[GameAttributes.Core_Attributes_From_Item_Bonus_Multiplier] = 1; - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus] = - Inventory.GetItemBonus(GameAttribute.Hitpoints_Max_Percent_Bonus); - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Item] = - Inventory.GetItemBonus(GameAttribute.Hitpoints_Max_Percent_Bonus_Item); - Attributes[GameAttribute.Hitpoints_Max_Bonus] = Inventory.GetItemBonus(GameAttribute.Hitpoints_Max_Bonus); + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus] = + Inventory.GetItemBonus(GameAttributes.Hitpoints_Max_Percent_Bonus); + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Item] = + Inventory.GetItemBonus(GameAttributes.Hitpoints_Max_Percent_Bonus_Item); + Attributes[GameAttributes.Hitpoints_Max_Bonus] = Inventory.GetItemBonus(GameAttributes.Hitpoints_Max_Bonus); - Attributes[GameAttribute.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] = - Inventory.GetItemBonus(GameAttribute.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource); + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] = + Inventory.GetItemBonus(GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource); - Attributes[GameAttribute.Attacks_Per_Second] = Inventory.GetAPS(); + Attributes[GameAttributes.Attacks_Per_Second] = Inventory.GetAPS(); - Attributes[GameAttribute.Attacks_Per_Second_Percent] = - Inventory.GetItemBonus(GameAttribute.Attacks_Per_Second_Item_Percent) + - Inventory.GetItemBonus(GameAttribute.Attacks_Per_Second_Percent); - Attributes[GameAttribute.Attacks_Per_Second_Bonus] = - Inventory.GetItemBonus(GameAttribute.Attacks_Per_Second_Item_Bonus); - Attributes[GameAttribute.Attacks_Per_Second_Item] = - Inventory.GetItemBonus(GameAttribute.Attacks_Per_Second_Item); - var a = Attributes[GameAttribute.Attacks_Per_Second]; - var b = Attributes[GameAttribute.Attacks_Per_Second_Percent]; - var c = Attributes[GameAttribute.Attacks_Per_Second_Bonus]; - var d = Attributes[GameAttribute.Attacks_Per_Second_Item]; - var e = Attributes[GameAttribute.Attacks_Per_Second_Item_CurrentHand]; - var f = Attributes[GameAttribute.Attacks_Per_Second_Item_Bonus]; - var g = Attributes[GameAttribute.Attacks_Per_Second_Percent_Subtotal]; - var h = Attributes[GameAttribute.Attacks_Per_Second_Percent_Cap]; - var j = Attributes[GameAttribute.Attacks_Per_Second_Percent_Uncapped]; - var k = Attributes[GameAttribute.Attacks_Per_Second_Percent_Reduction]; - var o = Attributes[GameAttribute.Attacks_Per_Second_Total]; + Attributes[GameAttributes.Attacks_Per_Second_Percent] = + Inventory.GetItemBonus(GameAttributes.Attacks_Per_Second_Item_Percent) + + Inventory.GetItemBonus(GameAttributes.Attacks_Per_Second_Percent); + Attributes[GameAttributes.Attacks_Per_Second_Bonus] = + Inventory.GetItemBonus(GameAttributes.Attacks_Per_Second_Item_Bonus); + Attributes[GameAttributes.Attacks_Per_Second_Item] = + Inventory.GetItemBonus(GameAttributes.Attacks_Per_Second_Item); + var a = Attributes[GameAttributes.Attacks_Per_Second]; + var b = Attributes[GameAttributes.Attacks_Per_Second_Percent]; + var c = Attributes[GameAttributes.Attacks_Per_Second_Bonus]; + var d = Attributes[GameAttributes.Attacks_Per_Second_Item]; + var e = Attributes[GameAttributes.Attacks_Per_Second_Item_CurrentHand]; + var f = Attributes[GameAttributes.Attacks_Per_Second_Item_Bonus]; + var g = Attributes[GameAttributes.Attacks_Per_Second_Percent_Subtotal]; + var h = Attributes[GameAttributes.Attacks_Per_Second_Percent_Cap]; + var j = Attributes[GameAttributes.Attacks_Per_Second_Percent_Uncapped]; + var k = Attributes[GameAttributes.Attacks_Per_Second_Percent_Reduction]; + var o = Attributes[GameAttributes.Attacks_Per_Second_Total]; - if (Attributes[GameAttribute.Attacks_Per_Second_Total] < 1) - Attributes[GameAttribute.Attacks_Per_Second] = 1.0f; - Attributes[GameAttribute.Crit_Percent_Bonus_Capped] = - Inventory.GetItemBonus(GameAttribute.Crit_Percent_Bonus_Capped); - Attributes[GameAttribute.Weapon_Crit_Chance] = 0.05f + Inventory.GetItemBonus(GameAttribute.Weapon_Crit_Chance); - Attributes[GameAttribute.Crit_Damage_Percent] = - 0.5f + Inventory.GetItemBonus(GameAttribute.Crit_Damage_Percent); + if (Attributes[GameAttributes.Attacks_Per_Second_Total] < 1) + Attributes[GameAttributes.Attacks_Per_Second] = 1.0f; + Attributes[GameAttributes.Crit_Percent_Bonus_Capped] = + Inventory.GetItemBonus(GameAttributes.Crit_Percent_Bonus_Capped); + Attributes[GameAttributes.Weapon_Crit_Chance] = 0.05f + Inventory.GetItemBonus(GameAttributes.Weapon_Crit_Chance); + Attributes[GameAttributes.Crit_Damage_Percent] = + 0.5f + Inventory.GetItemBonus(GameAttributes.Crit_Damage_Percent); - Attributes[GameAttribute.Splash_Damage_Effect_Percent] = - Inventory.GetItemBonus(GameAttribute.Splash_Damage_Effect_Percent); + Attributes[GameAttributes.Splash_Damage_Effect_Percent] = + Inventory.GetItemBonus(GameAttributes.Splash_Damage_Effect_Percent); - Attributes[GameAttribute.On_Hit_Fear_Proc_Chance] = - Inventory.GetItemBonus(GameAttribute.On_Hit_Fear_Proc_Chance) + - Inventory.GetItemBonus(GameAttribute.Weapon_On_Hit_Fear_Proc_Chance); - Attributes[GameAttribute.On_Hit_Stun_Proc_Chance] = - Inventory.GetItemBonus(GameAttribute.On_Hit_Stun_Proc_Chance) + - Inventory.GetItemBonus(GameAttribute.Weapon_On_Hit_Stun_Proc_Chance); - Attributes[GameAttribute.On_Hit_Blind_Proc_Chance] = - Inventory.GetItemBonus(GameAttribute.On_Hit_Blind_Proc_Chance) + - Inventory.GetItemBonus(GameAttribute.Weapon_On_Hit_Blind_Proc_Chance); - Attributes[GameAttribute.On_Hit_Freeze_Proc_Chance] = - Inventory.GetItemBonus(GameAttribute.On_Hit_Freeze_Proc_Chance) + - Inventory.GetItemBonus(GameAttribute.Weapon_On_Hit_Freeze_Proc_Chance); - Attributes[GameAttribute.On_Hit_Chill_Proc_Chance] = - Inventory.GetItemBonus(GameAttribute.On_Hit_Chill_Proc_Chance) + - Inventory.GetItemBonus(GameAttribute.Weapon_On_Hit_Chill_Proc_Chance); - Attributes[GameAttribute.On_Hit_Slow_Proc_Chance] = - Inventory.GetItemBonus(GameAttribute.On_Hit_Slow_Proc_Chance) + - Inventory.GetItemBonus(GameAttribute.Weapon_On_Hit_Slow_Proc_Chance); - Attributes[GameAttribute.On_Hit_Immobilize_Proc_Chance] = - Inventory.GetItemBonus(GameAttribute.On_Hit_Immobilize_Proc_Chance) + - Inventory.GetItemBonus(GameAttribute.Weapon_On_Hit_Immobilize_Proc_Chance); - Attributes[GameAttribute.On_Hit_Knockback_Proc_Chance] = - Inventory.GetItemBonus(GameAttribute.On_Hit_Knockback_Proc_Chance) + - Inventory.GetItemBonus(GameAttribute.Weapon_On_Hit_Knockback_Proc_Chance); - Attributes[GameAttribute.On_Hit_Bleed_Proc_Chance] = - Inventory.GetItemBonus(GameAttribute.On_Hit_Bleed_Proc_Chance) + - Inventory.GetItemBonus(GameAttribute.Weapon_On_Hit_Bleed_Proc_Chance); + Attributes[GameAttributes.On_Hit_Fear_Proc_Chance] = + Inventory.GetItemBonus(GameAttributes.On_Hit_Fear_Proc_Chance) + + Inventory.GetItemBonus(GameAttributes.Weapon_On_Hit_Fear_Proc_Chance); + Attributes[GameAttributes.On_Hit_Stun_Proc_Chance] = + Inventory.GetItemBonus(GameAttributes.On_Hit_Stun_Proc_Chance) + + Inventory.GetItemBonus(GameAttributes.Weapon_On_Hit_Stun_Proc_Chance); + Attributes[GameAttributes.On_Hit_Blind_Proc_Chance] = + Inventory.GetItemBonus(GameAttributes.On_Hit_Blind_Proc_Chance) + + Inventory.GetItemBonus(GameAttributes.Weapon_On_Hit_Blind_Proc_Chance); + Attributes[GameAttributes.On_Hit_Freeze_Proc_Chance] = + Inventory.GetItemBonus(GameAttributes.On_Hit_Freeze_Proc_Chance) + + Inventory.GetItemBonus(GameAttributes.Weapon_On_Hit_Freeze_Proc_Chance); + Attributes[GameAttributes.On_Hit_Chill_Proc_Chance] = + Inventory.GetItemBonus(GameAttributes.On_Hit_Chill_Proc_Chance) + + Inventory.GetItemBonus(GameAttributes.Weapon_On_Hit_Chill_Proc_Chance); + Attributes[GameAttributes.On_Hit_Slow_Proc_Chance] = + Inventory.GetItemBonus(GameAttributes.On_Hit_Slow_Proc_Chance) + + Inventory.GetItemBonus(GameAttributes.Weapon_On_Hit_Slow_Proc_Chance); + Attributes[GameAttributes.On_Hit_Immobilize_Proc_Chance] = + Inventory.GetItemBonus(GameAttributes.On_Hit_Immobilize_Proc_Chance) + + Inventory.GetItemBonus(GameAttributes.Weapon_On_Hit_Immobilize_Proc_Chance); + Attributes[GameAttributes.On_Hit_Knockback_Proc_Chance] = + Inventory.GetItemBonus(GameAttributes.On_Hit_Knockback_Proc_Chance) + + Inventory.GetItemBonus(GameAttributes.Weapon_On_Hit_Knockback_Proc_Chance); + Attributes[GameAttributes.On_Hit_Bleed_Proc_Chance] = + Inventory.GetItemBonus(GameAttributes.On_Hit_Bleed_Proc_Chance) + + Inventory.GetItemBonus(GameAttributes.Weapon_On_Hit_Bleed_Proc_Chance); - Attributes[GameAttribute.Running_Rate] = - Toon.HeroTable.RunningRate + Inventory.GetItemBonus(GameAttribute.Running_Rate); - Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] = - Inventory.GetItemBonus(GameAttribute.Movement_Scalar_Uncapped_Bonus); - Attributes[GameAttribute.Movement_Scalar] = Inventory.GetItemBonus(GameAttribute.Movement_Scalar) + 1.0f; + Attributes[GameAttributes.Running_Rate] = + Toon.HeroTable.RunningRate + Inventory.GetItemBonus(GameAttributes.Running_Rate); + Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] = + Inventory.GetItemBonus(GameAttributes.Movement_Scalar_Uncapped_Bonus); + Attributes[GameAttributes.Movement_Scalar] = Inventory.GetItemBonus(GameAttributes.Movement_Scalar) + 1.0f; //this.Attributes[GameAttribute.Magic_Find] = this.Inventory.GetItemBonus(GameAttribute.Magic_Find); - Attributes[GameAttribute.Magic_Find] = Inventory.GetMagicFind(); + Attributes[GameAttributes.Magic_Find] = Inventory.GetMagicFind(); //this.Attributes[GameAttribute.Gold_Find] = this.Inventory.GetItemBonus(GameAttribute.Gold_Find); - Attributes[GameAttribute.Gold_Find] = Inventory.GetGoldFind(); + Attributes[GameAttributes.Gold_Find] = Inventory.GetGoldFind(); - Attributes[GameAttribute.Gold_PickUp_Radius] = 5f + Inventory.GetItemBonus(GameAttribute.Gold_PickUp_Radius); + Attributes[GameAttributes.Gold_PickUp_Radius] = 5f + Inventory.GetItemBonus(GameAttributes.Gold_PickUp_Radius); - Attributes[GameAttribute.Experience_Bonus] = Inventory.GetItemBonus(GameAttribute.Experience_Bonus); - Attributes[GameAttribute.Experience_Bonus_Percent] = - Inventory.GetItemBonus(GameAttribute.Experience_Bonus_Percent); + Attributes[GameAttributes.Experience_Bonus] = Inventory.GetItemBonus(GameAttributes.Experience_Bonus); + Attributes[GameAttributes.Experience_Bonus_Percent] = + Inventory.GetItemBonus(GameAttributes.Experience_Bonus_Percent); - Attributes[GameAttribute.Resistance_Freeze] = Inventory.GetItemBonus(GameAttribute.Resistance_Freeze); - Attributes[GameAttribute.Resistance_Penetration] = Inventory.GetItemBonus(GameAttribute.Resistance_Penetration); - Attributes[GameAttribute.Resistance_Percent] = Inventory.GetItemBonus(GameAttribute.Resistance_Percent); - Attributes[GameAttribute.Resistance_Root] = Inventory.GetItemBonus(GameAttribute.Resistance_Root); - Attributes[GameAttribute.Resistance_Stun] = Inventory.GetItemBonus(GameAttribute.Resistance_Stun); - Attributes[GameAttribute.Resistance_StunRootFreeze] = - Inventory.GetItemBonus(GameAttribute.Resistance_StunRootFreeze); + Attributes[GameAttributes.Resistance_Freeze] = Inventory.GetItemBonus(GameAttributes.Resistance_Freeze); + Attributes[GameAttributes.Resistance_Penetration] = Inventory.GetItemBonus(GameAttributes.Resistance_Penetration); + Attributes[GameAttributes.Resistance_Percent] = Inventory.GetItemBonus(GameAttributes.Resistance_Percent); + Attributes[GameAttributes.Resistance_Root] = Inventory.GetItemBonus(GameAttributes.Resistance_Root); + Attributes[GameAttributes.Resistance_Stun] = Inventory.GetItemBonus(GameAttributes.Resistance_Stun); + Attributes[GameAttributes.Resistance_StunRootFreeze] = + Inventory.GetItemBonus(GameAttributes.Resistance_StunRootFreeze); - Attributes[GameAttribute.Dodge_Chance_Bonus] = Inventory.GetItemBonus(GameAttribute.Dodge_Chance_Bonus); + Attributes[GameAttributes.Dodge_Chance_Bonus] = Inventory.GetItemBonus(GameAttributes.Dodge_Chance_Bonus); - Attributes[GameAttribute.Block_Amount_Item_Min] = Inventory.GetItemBonus(GameAttribute.Block_Amount_Item_Min); - Attributes[GameAttribute.Block_Amount_Item_Delta] = - Inventory.GetItemBonus(GameAttribute.Block_Amount_Item_Delta); - Attributes[GameAttribute.Block_Amount_Bonus_Percent] = - Inventory.GetItemBonus(GameAttribute.Block_Amount_Bonus_Percent); - Attributes[GameAttribute.Block_Chance] = Inventory.GetItemBonus(GameAttribute.Block_Chance_Item_Total); + Attributes[GameAttributes.Block_Amount_Item_Min] = Inventory.GetItemBonus(GameAttributes.Block_Amount_Item_Min); + Attributes[GameAttributes.Block_Amount_Item_Delta] = + Inventory.GetItemBonus(GameAttributes.Block_Amount_Item_Delta); + Attributes[GameAttributes.Block_Amount_Bonus_Percent] = + Inventory.GetItemBonus(GameAttributes.Block_Amount_Bonus_Percent); + Attributes[GameAttributes.Block_Chance] = Inventory.GetItemBonus(GameAttributes.Block_Chance_Item_Total); - Attributes[GameAttribute.Power_Cooldown_Reduction_Percent] = 0; - Attributes[GameAttribute.Health_Globe_Bonus_Health] = - Inventory.GetItemBonus(GameAttribute.Health_Globe_Bonus_Health); + Attributes[GameAttributes.Power_Cooldown_Reduction_Percent] = 0; + Attributes[GameAttributes.Health_Globe_Bonus_Health] = + Inventory.GetItemBonus(GameAttributes.Health_Globe_Bonus_Health); - Attributes[GameAttribute.Hitpoints_Regen_Per_Second] = - Inventory.GetItemBonus(GameAttribute.Hitpoints_Regen_Per_Second) + Toon.HeroTable.GetHitRecoveryBase + + Attributes[GameAttributes.Hitpoints_Regen_Per_Second] = + Inventory.GetItemBonus(GameAttributes.Hitpoints_Regen_Per_Second) + Toon.HeroTable.GetHitRecoveryBase + Toon.HeroTable.GetHitRecoveryPerLevel * Level; - Attributes[GameAttribute.Resource_Cost_Reduction_Percent_All] = - Inventory.GetItemBonus(GameAttribute.Resource_Cost_Reduction_Percent_All); - Attributes[GameAttribute.Resource_Cost_Reduction_Percent, (int)Toon.HeroTable.PrimaryResource] = - Inventory.GetItemBonus(GameAttribute.Resource_Cost_Reduction_Percent, (int)Toon.HeroTable.PrimaryResource); - Attributes[GameAttribute.Resource_Regen_Per_Second, (int)Toon.HeroTable.PrimaryResource] = - Toon.HeroTable.PrimaryResourceRegen + Inventory.GetItemBonus(GameAttribute.Resource_Regen_Per_Second, + Attributes[GameAttributes.Resource_Cost_Reduction_Percent_All] = + Inventory.GetItemBonus(GameAttributes.Resource_Cost_Reduction_Percent_All); + Attributes[GameAttributes.Resource_Cost_Reduction_Percent, (int)Toon.HeroTable.PrimaryResource] = + Inventory.GetItemBonus(GameAttributes.Resource_Cost_Reduction_Percent, (int)Toon.HeroTable.PrimaryResource); + Attributes[GameAttributes.Resource_Regen_Per_Second, (int)Toon.HeroTable.PrimaryResource] = + Toon.HeroTable.PrimaryResourceRegen + Inventory.GetItemBonus(GameAttributes.Resource_Regen_Per_Second, (int)Toon.HeroTable.PrimaryResource); - Attributes[GameAttribute.Resource_Regen_Bonus_Percent, (int)Toon.HeroTable.PrimaryResource] = - Inventory.GetItemBonus(GameAttribute.Resource_Regen_Bonus_Percent, (int)Toon.HeroTable.PrimaryResource); + Attributes[GameAttributes.Resource_Regen_Bonus_Percent, (int)Toon.HeroTable.PrimaryResource] = + Inventory.GetItemBonus(GameAttributes.Resource_Regen_Bonus_Percent, (int)Toon.HeroTable.PrimaryResource); - Attributes[GameAttribute.Resource_Cost_Reduction_Percent, (int)Toon.HeroTable.SecondaryResource] = - Inventory.GetItemBonus(GameAttribute.Resource_Cost_Reduction_Percent, + Attributes[GameAttributes.Resource_Cost_Reduction_Percent, (int)Toon.HeroTable.SecondaryResource] = + Inventory.GetItemBonus(GameAttributes.Resource_Cost_Reduction_Percent, (int)Toon.HeroTable.SecondaryResource); - Attributes[GameAttribute.Resource_Regen_Per_Second, (int)Toon.HeroTable.SecondaryResource] = - Toon.HeroTable.SecondaryResourceRegen + Inventory.GetItemBonus(GameAttribute.Resource_Regen_Per_Second, + Attributes[GameAttributes.Resource_Regen_Per_Second, (int)Toon.HeroTable.SecondaryResource] = + Toon.HeroTable.SecondaryResourceRegen + Inventory.GetItemBonus(GameAttributes.Resource_Regen_Per_Second, (int)Toon.HeroTable.SecondaryResource); - Attributes[GameAttribute.Resource_Regen_Bonus_Percent, (int)Toon.HeroTable.SecondaryResource] = - Inventory.GetItemBonus(GameAttribute.Resource_Regen_Bonus_Percent, (int)Toon.HeroTable.SecondaryResource); + Attributes[GameAttributes.Resource_Regen_Bonus_Percent, (int)Toon.HeroTable.SecondaryResource] = + Inventory.GetItemBonus(GameAttributes.Resource_Regen_Bonus_Percent, (int)Toon.HeroTable.SecondaryResource); - Attributes[GameAttribute.Resource_On_Hit] = 0; - Attributes[GameAttribute.Resource_On_Hit, 0] = Inventory.GetItemBonus(GameAttribute.Resource_On_Hit, 0); - Attributes[GameAttribute.Resource_On_Crit, 1] = Inventory.GetItemBonus(GameAttribute.Resource_On_Crit, 1); + Attributes[GameAttributes.Resource_On_Hit] = 0; + Attributes[GameAttributes.Resource_On_Hit, 0] = Inventory.GetItemBonus(GameAttributes.Resource_On_Hit, 0); + Attributes[GameAttributes.Resource_On_Crit, 1] = Inventory.GetItemBonus(GameAttributes.Resource_On_Crit, 1); - Attributes[GameAttribute.Steal_Health_Percent] = - Inventory.GetItemBonus(GameAttribute.Steal_Health_Percent) * 0.1f; - Attributes[GameAttribute.Hitpoints_On_Hit] = Inventory.GetItemBonus(GameAttribute.Hitpoints_On_Hit); - Attributes[GameAttribute.Hitpoints_On_Kill] = Inventory.GetItemBonus(GameAttribute.Hitpoints_On_Kill); - Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] = - Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Percent_Bonus); - Attributes[GameAttribute.Damage_Percent_Bonus_Vs_Elites] = - Inventory.GetItemBonus(GameAttribute.Damage_Percent_Bonus_Vs_Elites); + Attributes[GameAttributes.Steal_Health_Percent] = + Inventory.GetItemBonus(GameAttributes.Steal_Health_Percent) * 0.1f; + Attributes[GameAttributes.Hitpoints_On_Hit] = Inventory.GetItemBonus(GameAttributes.Hitpoints_On_Hit); + Attributes[GameAttributes.Hitpoints_On_Kill] = Inventory.GetItemBonus(GameAttributes.Hitpoints_On_Kill); + Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] = + Inventory.GetItemBonus(GameAttributes.Damage_Weapon_Percent_Bonus); + Attributes[GameAttributes.Damage_Percent_Bonus_Vs_Elites] = + Inventory.GetItemBonus(GameAttributes.Damage_Percent_Bonus_Vs_Elites); //this.Attributes[GameAttribute.Power_Cooldown_Reduction_Percent_All_Capped] = 0.5f; //this.Attributes[GameAttribute.Power_Cooldown_Reduction_Percent_Cap] = 0.5f; - Attributes[GameAttribute.Power_Cooldown_Reduction_Percent] = 0.5f; - Attributes[GameAttribute.Power_Cooldown_Reduction_Percent_All] = - Inventory.GetItemBonus(GameAttribute.Power_Cooldown_Reduction_Percent_All); - Attributes[GameAttribute.Crit_Percent_Bonus_Uncapped] = - Inventory.GetItemBonus(GameAttribute.Crit_Percent_Bonus_Uncapped); + Attributes[GameAttributes.Power_Cooldown_Reduction_Percent] = 0.5f; + Attributes[GameAttributes.Power_Cooldown_Reduction_Percent_All] = + Inventory.GetItemBonus(GameAttributes.Power_Cooldown_Reduction_Percent_All); + Attributes[GameAttributes.Crit_Percent_Bonus_Uncapped] = + Inventory.GetItemBonus(GameAttributes.Crit_Percent_Bonus_Uncapped); //this.Attributes[GameAttribute.Projectile_Speed] = 0.3f; switch (Toon.Class) { case ToonClass.Barbarian: - Attributes[GameAttribute.Power_Resource_Reduction, 80028] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 80028); - Attributes[GameAttribute.Power_Resource_Reduction, 70472] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 70472); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 79242] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 79242); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 80263] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 80263); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 78548] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 78548); - Attributes[GameAttribute.Power_Resource_Reduction, 93885] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 93885); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 86989] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 86989); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 96296] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 96296); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 109342] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 109342); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 159169] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 159169); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 93885] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 93885); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 69979] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 69979); + Attributes[GameAttributes.Power_Resource_Reduction, 80028] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 80028); + Attributes[GameAttributes.Power_Resource_Reduction, 70472] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 70472); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 79242] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 79242); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 80263] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 80263); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 78548] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 78548); + Attributes[GameAttributes.Power_Resource_Reduction, 93885] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 93885); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 86989] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 86989); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 96296] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 96296); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 109342] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 109342); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 159169] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 159169); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 93885] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 93885); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 69979] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 69979); break; case ToonClass.DemonHunter: - Attributes[GameAttribute.Resource_Max_Bonus, (int)Toon.HeroTable.SecondaryResource] = - Inventory.GetItemBonus(GameAttribute.Resource_Max_Bonus, (int)Toon.HeroTable.SecondaryResource); - Attributes[GameAttribute.Bow] = Inventory.GetItemBonus(GameAttribute.Bow); - Attributes[GameAttribute.Crossbow] = Inventory.GetItemBonus(GameAttribute.Crossbow); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 129215] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 129215); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 134209] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 134209); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 77552] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 77552); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 75873] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 75873); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 86610] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 86610); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 131192] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 131192); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 131325] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 131325); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 77649] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 77649); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 134030] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 134030); - Attributes[GameAttribute.Power_Resource_Reduction, 129214] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 129214); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 75301] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 75301); - Attributes[GameAttribute.Power_Resource_Reduction, 131366] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 131366); - Attributes[GameAttribute.Power_Resource_Reduction, 129213] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 129213); + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.SecondaryResource] = + Inventory.GetItemBonus(GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.SecondaryResource); + Attributes[GameAttributes.Bow] = Inventory.GetItemBonus(GameAttributes.Bow); + Attributes[GameAttributes.Crossbow] = Inventory.GetItemBonus(GameAttributes.Crossbow); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 129215] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 129215); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 134209] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 134209); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 77552] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 77552); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 75873] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 75873); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 86610] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 86610); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 131192] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 131192); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 131325] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 131325); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 77649] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 77649); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 134030] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 134030); + Attributes[GameAttributes.Power_Resource_Reduction, 129214] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 129214); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 75301] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 75301); + Attributes[GameAttributes.Power_Resource_Reduction, 131366] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 131366); + Attributes[GameAttributes.Power_Resource_Reduction, 129213] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 129213); break; case ToonClass.Monk: - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 95940] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 95940); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 96019] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 96019); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 96311] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 96311); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 97328] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 97328); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 96090] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 96090); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 97110] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 97110); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 121442] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 121442); - Attributes[GameAttribute.Power_Resource_Reduction, 111676] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 111676); - Attributes[GameAttribute.Power_Resource_Reduction, 223473] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 223473); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 96033] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 96033); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 95940] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 95940); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 96019] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 96019); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 96311] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 96311); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 97328] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 97328); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 96090] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 96090); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 97110] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 97110); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 121442] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 121442); + Attributes[GameAttributes.Power_Resource_Reduction, 111676] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 111676); + Attributes[GameAttributes.Power_Resource_Reduction, 223473] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 223473); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 96033] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 96033); break; case ToonClass.WitchDoctor: - Attributes[GameAttribute.Power_Resource_Reduction, 105963] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 105963); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 103181] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 103181); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 106465] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 106465); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 83602] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 83602); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 108506] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 108506); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 69866] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 69866); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 69867] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 69867); - Attributes[GameAttribute.Power_Resource_Reduction, 74003] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 74003); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 70455] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 103181); - Attributes[GameAttribute.Power_Resource_Reduction, 67567] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 67567); - Attributes[GameAttribute.Power_Cooldown_Reduction, 134837] = - Inventory.GetItemBonus(GameAttribute.Power_Cooldown_Reduction, 134837); - Attributes[GameAttribute.Power_Cooldown_Reduction, 67600] = - Inventory.GetItemBonus(GameAttribute.Power_Cooldown_Reduction, 67600); - Attributes[GameAttribute.Power_Cooldown_Reduction, 102573] = - Inventory.GetItemBonus(GameAttribute.Power_Cooldown_Reduction, 102573); - Attributes[GameAttribute.Power_Cooldown_Reduction, 30624] = - Inventory.GetItemBonus(GameAttribute.Power_Cooldown_Reduction, 30624); + Attributes[GameAttributes.Power_Resource_Reduction, 105963] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 105963); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 103181] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 103181); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 106465] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 106465); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 83602] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 83602); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 108506] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 108506); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 69866] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 69866); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 69867] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 69867); + Attributes[GameAttributes.Power_Resource_Reduction, 74003] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 74003); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 70455] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 103181); + Attributes[GameAttributes.Power_Resource_Reduction, 67567] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 67567); + Attributes[GameAttributes.Power_Cooldown_Reduction, 134837] = + Inventory.GetItemBonus(GameAttributes.Power_Cooldown_Reduction, 134837); + Attributes[GameAttributes.Power_Cooldown_Reduction, 67600] = + Inventory.GetItemBonus(GameAttributes.Power_Cooldown_Reduction, 67600); + Attributes[GameAttributes.Power_Cooldown_Reduction, 102573] = + Inventory.GetItemBonus(GameAttributes.Power_Cooldown_Reduction, 102573); + Attributes[GameAttributes.Power_Cooldown_Reduction, 30624] = + Inventory.GetItemBonus(GameAttributes.Power_Cooldown_Reduction, 30624); break; case ToonClass.Wizard: - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 30744] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 30744); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 30783] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 30783); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 71548] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 71548); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 1765] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 1765); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 30668] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 30668); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 77113] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 77113); - Attributes[GameAttribute.Power_Resource_Reduction, 91549] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 91549); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 87525] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 87525); - Attributes[GameAttribute.Power_Crit_Percent_Bonus, 93395] = - Inventory.GetItemBonus(GameAttribute.Power_Crit_Percent_Bonus, 93395); - Attributes[GameAttribute.Power_Resource_Reduction, 134456] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 134456); - Attributes[GameAttribute.Power_Resource_Reduction, 30725] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 30725); - Attributes[GameAttribute.Power_Duration_Increase, 30680] = - Inventory.GetItemBonus(GameAttribute.Power_Duration_Increase, 30680); - Attributes[GameAttribute.Power_Resource_Reduction, 69190] = - Inventory.GetItemBonus(GameAttribute.Power_Resource_Reduction, 69190); - Attributes[GameAttribute.Power_Cooldown_Reduction, 168344] = - Inventory.GetItemBonus(GameAttribute.Power_Cooldown_Reduction, 168344); - Attributes[GameAttribute.Power_Damage_Percent_Bonus, 71548] = - Inventory.GetItemBonus(GameAttribute.Power_Damage_Percent_Bonus, 71548); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 30744] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 30744); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 30783] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 30783); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 71548] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 71548); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 1765] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 1765); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 30668] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 30668); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 77113] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 77113); + Attributes[GameAttributes.Power_Resource_Reduction, 91549] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 91549); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 87525] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 87525); + Attributes[GameAttributes.Power_Crit_Percent_Bonus, 93395] = + Inventory.GetItemBonus(GameAttributes.Power_Crit_Percent_Bonus, 93395); + Attributes[GameAttributes.Power_Resource_Reduction, 134456] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 134456); + Attributes[GameAttributes.Power_Resource_Reduction, 30725] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 30725); + Attributes[GameAttributes.Power_Duration_Increase, 30680] = + Inventory.GetItemBonus(GameAttributes.Power_Duration_Increase, 30680); + Attributes[GameAttributes.Power_Resource_Reduction, 69190] = + Inventory.GetItemBonus(GameAttributes.Power_Resource_Reduction, 69190); + Attributes[GameAttributes.Power_Cooldown_Reduction, 168344] = + Inventory.GetItemBonus(GameAttributes.Power_Cooldown_Reduction, 168344); + Attributes[GameAttributes.Power_Damage_Percent_Bonus, 71548] = + Inventory.GetItemBonus(GameAttributes.Power_Damage_Percent_Bonus, 71548); break; } } public void UpdatePercentageHP(float percent) { - var m = Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Hitpoints_Cur] = percent * Attributes[GameAttribute.Hitpoints_Max_Total] / 100; + var m = Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Cur] = percent * Attributes[GameAttributes.Hitpoints_Max_Total] / 100; Attributes.BroadcastChangedIfRevealed(); } @@ -1068,30 +1064,30 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void SetAttributesByItemProcs() { - Attributes[GameAttribute.Item_Power_Passive, 248776] = - Inventory.GetItemBonus(GameAttribute.Item_Power_Passive, 248776); //cluck - Attributes[GameAttribute.Item_Power_Passive, 248629] = - Inventory.GetItemBonus(GameAttribute.Item_Power_Passive, 248629); //death laugh - Attributes[GameAttribute.Item_Power_Passive, 247640] = - Inventory.GetItemBonus(GameAttribute.Item_Power_Passive, 247640); //gore1 - Attributes[GameAttribute.Item_Power_Passive, 249963] = - Inventory.GetItemBonus(GameAttribute.Item_Power_Passive, 249963); //gore2 - Attributes[GameAttribute.Item_Power_Passive, 249954] = - Inventory.GetItemBonus(GameAttribute.Item_Power_Passive, 249954); //gore3 - Attributes[GameAttribute.Item_Power_Passive, 246116] = - Inventory.GetItemBonus(GameAttribute.Item_Power_Passive, 246116); //butcher - Attributes[GameAttribute.Item_Power_Passive, 247724] = - Inventory.GetItemBonus(GameAttribute.Item_Power_Passive, 247724); //plum! - Attributes[GameAttribute.Item_Power_Passive, 245741] = - Inventory.GetItemBonus(GameAttribute.Item_Power_Passive, 245741); //weee! + Attributes[GameAttributes.Item_Power_Passive, 248776] = + Inventory.GetItemBonus(GameAttributes.Item_Power_Passive, 248776); //cluck + Attributes[GameAttributes.Item_Power_Passive, 248629] = + Inventory.GetItemBonus(GameAttributes.Item_Power_Passive, 248629); //death laugh + Attributes[GameAttributes.Item_Power_Passive, 247640] = + Inventory.GetItemBonus(GameAttributes.Item_Power_Passive, 247640); //gore1 + Attributes[GameAttributes.Item_Power_Passive, 249963] = + Inventory.GetItemBonus(GameAttributes.Item_Power_Passive, 249963); //gore2 + Attributes[GameAttributes.Item_Power_Passive, 249954] = + Inventory.GetItemBonus(GameAttributes.Item_Power_Passive, 249954); //gore3 + Attributes[GameAttributes.Item_Power_Passive, 246116] = + Inventory.GetItemBonus(GameAttributes.Item_Power_Passive, 246116); //butcher + Attributes[GameAttributes.Item_Power_Passive, 247724] = + Inventory.GetItemBonus(GameAttributes.Item_Power_Passive, 247724); //plum! + Attributes[GameAttributes.Item_Power_Passive, 245741] = + Inventory.GetItemBonus(GameAttributes.Item_Power_Passive, 245741); //weee! } public void SetAttributesByItemSets() { - Attributes[GameAttribute.Strength] = Strength; - Attributes[GameAttribute.Dexterity] = Dexterity; - Attributes[GameAttribute.Vitality] = Vitality; - Attributes[GameAttribute.Intelligence] = Intelligence; + Attributes[GameAttributes.Strength] = Strength; + Attributes[GameAttributes.Dexterity] = Dexterity; + Attributes[GameAttributes.Vitality] = Vitality; + Attributes[GameAttributes.Intelligence] = Intelligence; Attributes.BroadcastChangedIfRevealed(); Inventory.SetItemSetBonuses(); @@ -1100,9 +1096,9 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void SetAttributesByPassives() //also reapplies synergy buffs { // Class specific - Attributes[GameAttribute.Damage_Percent_All_From_Skills] = 0; - Attributes[GameAttribute.Allow_2H_And_Shield] = false; - Attributes[GameAttribute.Cannot_Dodge] = false; + Attributes[GameAttributes.Damage_Percent_All_From_Skills] = 0; + Attributes[GameAttributes.Allow_2H_And_Shield] = false; + Attributes[GameAttributes.Cannot_Dodge] = false; foreach (var passiveId in SkillSet.PassiveSkills) switch (Toon.Class) @@ -1111,22 +1107,22 @@ public class Player : Actor, IMessageConsumer, IUpdateable switch (passiveId) { case 217819: //NervesOfSteel - Attributes[GameAttribute.Armor_Item] += Attributes[GameAttribute.Vitality_Total] * 0.50f; + Attributes[GameAttributes.Armor_Item] += Attributes[GameAttributes.Vitality_Total] * 0.50f; break; case 205228: //Animosity - Attributes[GameAttribute.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += 20; - Attributes[GameAttribute.Resource_Regen_Per_Second, (int)Toon.HeroTable.PrimaryResource] = - Attributes[GameAttribute.Resource_Regen_Per_Second, + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += 20; + Attributes[GameAttributes.Resource_Regen_Per_Second, (int)Toon.HeroTable.PrimaryResource] = + Attributes[GameAttributes.Resource_Regen_Per_Second, (int)Toon.HeroTable.PrimaryResource] * 1.1f; - Attributes[GameAttribute.Resource_Cur, (int)Toon.HeroTable.PrimaryResource] = - Toon.HeroTable.PrimaryResourceBase + Attributes[GameAttribute.Resource_Max_Bonus, + Attributes[GameAttributes.Resource_Cur, (int)Toon.HeroTable.PrimaryResource] = + Toon.HeroTable.PrimaryResourceBase + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource]; break; case 205848: //ToughAsNails - Attributes[GameAttribute.Armor_Item] *= 1.25f; + Attributes[GameAttributes.Armor_Item] *= 1.25f; break; case 205707: //Juggernaut - Attributes[GameAttribute.CrowdControl_Reduction] += 0.3f; + Attributes[GameAttributes.CrowdControl_Reduction] += 0.3f; break; case 206147: //WeaponsMaster var weapon = Inventory.GetEquippedWeapon(); @@ -1134,13 +1130,13 @@ public class Player : Actor, IMessageConsumer, IUpdateable { var name = weapon.ItemDefinition.Name.ToLower(); if (name.Contains("sword") || name.Contains("dagger")) - Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += 0.08f; + Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += 0.08f; else if (name.Contains("axe") || name.Contains("mace")) - Attributes[GameAttribute.Weapon_Crit_Chance] += 0.05f; + Attributes[GameAttributes.Weapon_Crit_Chance] += 0.05f; else if (name.Contains("spear") || name.Contains("polearm")) - Attributes[GameAttribute.Attacks_Per_Second] *= 1.08f; + Attributes[GameAttributes.Attacks_Per_Second] *= 1.08f; else if (name.Contains("mighty")) - Attributes[GameAttribute.Resource_On_Hit] += 1f; + Attributes[GameAttributes.Resource_On_Hit] += 1f; } break; @@ -1151,14 +1147,14 @@ public class Player : Actor, IMessageConsumer, IUpdateable switch (passiveId) { case 155714: //Blood Vengeance - Attributes[GameAttribute.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += 25; - Attributes[GameAttribute.Resource_Cur, (int)Toon.HeroTable.PrimaryResource] = - Toon.HeroTable.PrimaryResourceBase + Attributes[GameAttribute.Resource_Max_Bonus, + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += 25; + Attributes[GameAttributes.Resource_Cur, (int)Toon.HeroTable.PrimaryResource] = + Toon.HeroTable.PrimaryResourceBase + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource]; break; case 210801: //Brooding - Attributes[GameAttribute.Hitpoints_Regen_Per_Second] += - Attributes[GameAttribute.Hitpoints_Max_Total] / 100; + Attributes[GameAttributes.Hitpoints_Regen_Per_Second] += + Attributes[GameAttributes.Hitpoints_Max_Total] / 100; break; case 155715: //Sharpshooter World.BuffManager.RemoveBuffs(this, 155715); @@ -1174,28 +1170,28 @@ public class Player : Actor, IMessageConsumer, IUpdateable { var name = weapon.ItemDefinition.Name.ToLower(); if (name.Contains("xbow")) - Attributes[GameAttribute.Crit_Damage_Percent] += 0.5f; + Attributes[GameAttributes.Crit_Damage_Percent] += 0.5f; if (name.Contains("handxbow")) { - Attributes[GameAttribute.Crit_Percent_Bonus_Uncapped] += 0.05f; + Attributes[GameAttributes.Crit_Percent_Bonus_Uncapped] += 0.05f; } else if (name.Contains("xbow")) { - Attributes[GameAttribute.Resource_Regen_Per_Second, + Attributes[GameAttributes.Resource_Regen_Per_Second, (int)Toon.HeroTable.PrimaryResource] += 1f; } else if (name.Contains("bow")) { - Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += 0.08f; - Attributes[GameAttribute.Damage_Percent_All_From_Skills] = 0.08f; + Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += 0.08f; + Attributes[GameAttributes.Damage_Percent_All_From_Skills] = 0.08f; } } break; case 155722: //Perfectionist - Attributes[GameAttribute.Armor_Item] *= 1.1f; - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus] += 0.1f; - Attributes[GameAttribute.Resistance_Percent_All] += 0.1f; + Attributes[GameAttributes.Armor_Item] *= 1.1f; + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus] += 0.1f; + Attributes[GameAttributes.Resistance_Percent_All] += 0.1f; break; } @@ -1204,39 +1200,39 @@ public class Player : Actor, IMessageConsumer, IUpdateable switch (passiveId) { case 209029: //FleetFooted - Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += 0.1f; + Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += 0.1f; break; case 209027: //ExaltedSoul - Attributes[GameAttribute.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += 100; + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += 100; //this.Attributes[GameAttribute.Resource_Cur, (int)Toon.HeroTable.PrimaryResource] = Toon.HeroTable.PrimaryResourceMax + this.Attributes[GameAttribute.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource]; - Attributes[GameAttribute.Resource_Regen_Per_Second, 3] += 2f; + Attributes[GameAttributes.Resource_Regen_Per_Second, 3] += 2f; break; case 209628: //SeizeTheInitiative - Attributes[GameAttribute.Armor_Item] += Attributes[GameAttribute.Dexterity_Total] * 0.3f; + Attributes[GameAttributes.Armor_Item] += Attributes[GameAttributes.Dexterity_Total] * 0.3f; break; case 209622: //SixthSense - Attributes[GameAttribute.Dodge_Chance_Bonus] += Math.Min( - (Attributes[GameAttribute.Weapon_Crit_Chance] + - Attributes[GameAttribute.Crit_Percent_Bonus_Capped] + - Attributes[GameAttribute.Crit_Percent_Bonus_Uncapped]) * 0.425f, 0.15f); + Attributes[GameAttributes.Dodge_Chance_Bonus] += Math.Min( + (Attributes[GameAttributes.Weapon_Crit_Chance] + + Attributes[GameAttributes.Crit_Percent_Bonus_Capped] + + Attributes[GameAttributes.Crit_Percent_Bonus_Uncapped]) * 0.425f, 0.15f); break; case 209104: //BeaconOfYtar - Attributes[GameAttribute.Power_Cooldown_Reduction_Percent_All] += 0.20f; + Attributes[GameAttributes.Power_Cooldown_Reduction_Percent_All] += 0.20f; break; case 209656: //OneWithEverything var maxResist = Math.Max( Math.Max( - Math.Max(Attributes[GameAttribute.Resistance, DamageType.Physical.AttributeKey], - Attributes[GameAttribute.Resistance, DamageType.Cold.AttributeKey]), - Attributes[GameAttribute.Resistance, DamageType.Fire.AttributeKey]), + Math.Max(Attributes[GameAttributes.Resistance, DamageType.Physical.AttributeKey], + Attributes[GameAttributes.Resistance, DamageType.Cold.AttributeKey]), + Attributes[GameAttributes.Resistance, DamageType.Fire.AttributeKey]), Math.Max( - Math.Max(Attributes[GameAttribute.Resistance, DamageType.Arcane.AttributeKey], - Attributes[GameAttribute.Resistance, DamageType.Holy.AttributeKey]), - Math.Max(Attributes[GameAttribute.Resistance, DamageType.Lightning.AttributeKey], - Attributes[GameAttribute.Resistance, DamageType.Poison.AttributeKey])) + Math.Max(Attributes[GameAttributes.Resistance, DamageType.Arcane.AttributeKey], + Attributes[GameAttributes.Resistance, DamageType.Holy.AttributeKey]), + Math.Max(Attributes[GameAttributes.Resistance, DamageType.Lightning.AttributeKey], + Attributes[GameAttributes.Resistance, DamageType.Poison.AttributeKey])) ); foreach (var damageType in DamageType.AllTypes) - Attributes[GameAttribute.Resistance, damageType.AttributeKey] = maxResist; + Attributes[GameAttributes.Resistance, damageType.AttributeKey] = maxResist; break; case 209812: //TheGuardiansPath try @@ -1244,7 +1240,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable var weapon = Inventory.GetEquippedWeapon(); if (weapon != null && Inventory.GetEquippedOffHand() != null) { - Attributes[GameAttribute.Dodge_Chance_Bonus] += 0.15f; + Attributes[GameAttributes.Dodge_Chance_Bonus] += 0.15f; } else if (weapon.ItemDefinition.Name.ToLower().Contains("2h")) { @@ -1262,7 +1258,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable World.BuffManager.AddBuff(this, this, new MomentumCheckBuff()); break; case 209813: //Provocation - Attributes[GameAttribute.CrowdControl_Reduction] += 0.25f; + Attributes[GameAttributes.CrowdControl_Reduction] += 0.25f; break; } @@ -1271,14 +1267,14 @@ public class Player : Actor, IMessageConsumer, IUpdateable switch (passiveId) { case 208569: //SpiritualAttunement - Attributes[GameAttribute.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += - Attributes[GameAttribute.Resource_Max, (int)Toon.HeroTable.PrimaryResource] * 0.2f; - Attributes[GameAttribute.Resource_Regen_Per_Second, (int)Toon.HeroTable.PrimaryResource] = + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += + Attributes[GameAttributes.Resource_Max, (int)Toon.HeroTable.PrimaryResource] * 0.2f; + Attributes[GameAttributes.Resource_Regen_Per_Second, (int)Toon.HeroTable.PrimaryResource] = Toon.HeroTable.PrimaryResourceRegen + (Toon.HeroTable.PrimaryResourceBase + - Attributes[GameAttribute.Resource_Max_Bonus, + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource]) / 100; - Attributes[GameAttribute.Resource_Cur, (int)Toon.HeroTable.PrimaryResource] = - Toon.HeroTable.PrimaryResourceBase + Attributes[GameAttribute.Resource_Max_Bonus, + Attributes[GameAttributes.Resource_Cur, (int)Toon.HeroTable.PrimaryResource] = + Toon.HeroTable.PrimaryResourceBase + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource]; break; case 340910: //PhysicalAttunement @@ -1286,16 +1282,16 @@ public class Player : Actor, IMessageConsumer, IUpdateable World.BuffManager.AddBuff(this, this, new PhysicalAttunementBuff()); break; case 208568: //BloodRitual - Attributes[GameAttribute.Hitpoints_Regen_Per_Second] += - Attributes[GameAttribute.Hitpoints_Max_Total] / 100; + Attributes[GameAttributes.Hitpoints_Regen_Per_Second] += + Attributes[GameAttributes.Hitpoints_Max_Total] / 100; break; case 208639: //FierceLoyalty foreach (var minionId in Followers.Keys) { var minion = World.GetActorByGlobalId(minionId); if (minion != null) - minion.Attributes[GameAttribute.Hitpoints_Regen_Per_Second] = - Inventory.GetItemBonus(GameAttribute.Hitpoints_Regen_Per_Second); + minion.Attributes[GameAttributes.Hitpoints_Regen_Per_Second] = + Inventory.GetItemBonus(GameAttributes.Hitpoints_Regen_Per_Second); } break; @@ -1310,18 +1306,18 @@ public class Player : Actor, IMessageConsumer, IUpdateable World.BuffManager.AddBuff(this, this, new GalvanizingBuff()); break; case 208473: //Evocation - Attributes[GameAttribute.Power_Cooldown_Reduction_Percent_All] += 0.20f; + Attributes[GameAttributes.Power_Cooldown_Reduction_Percent_All] += 0.20f; break; case 208472: //AstralPresence - Attributes[GameAttribute.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += 20; - Attributes[GameAttribute.Resource_Regen_Per_Second, (int)Toon.HeroTable.PrimaryResource] = + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += 20; + Attributes[GameAttributes.Resource_Regen_Per_Second, (int)Toon.HeroTable.PrimaryResource] = Toon.HeroTable.PrimaryResourceRegen + 2; - Attributes[GameAttribute.Resource_Cur, (int)Toon.HeroTable.PrimaryResource] = - Toon.HeroTable.PrimaryResourceBase + Attributes[GameAttribute.Resource_Max_Bonus, + Attributes[GameAttributes.Resource_Cur, (int)Toon.HeroTable.PrimaryResource] = + Toon.HeroTable.PrimaryResourceBase + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource]; break; case 208468: //Blur (Wizard) - Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] += 0.17f; + Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] += 0.17f; break; } @@ -1330,29 +1326,29 @@ public class Player : Actor, IMessageConsumer, IUpdateable switch (passiveId) { case 286177: //HeavenlyStrength - Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= 0.15f; - Attributes[GameAttribute.Allow_2H_And_Shield] = true; + Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= 0.15f; + Attributes[GameAttributes.Allow_2H_And_Shield] = true; break; case 310626: //Vigilant - Attributes[GameAttribute.Hitpoints_Regen_Per_Second] += - 10 + 0.008f * (float)Math.Pow(Attributes[GameAttribute.Level], 3); + Attributes[GameAttributes.Hitpoints_Regen_Per_Second] += + 10 + 0.008f * (float)Math.Pow(Attributes[GameAttributes.Level], 3); break; case 356147: //Righteousness - Attributes[GameAttribute.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += 30; + Attributes[GameAttributes.Resource_Max_Bonus, (int)Toon.HeroTable.PrimaryResource] += 30; break; case 310804: //HolyCause - Attributes[GameAttribute.Damage_Weapon_Min, 6] *= 1.1f; + Attributes[GameAttributes.Damage_Weapon_Min, 6] *= 1.1f; break; case 356176: //DivineFortress World.BuffManager.RemoveBuffs(this, 356176); World.BuffManager.AddBuff(this, this, new DivineFortressBuff()); break; case 302500: //HoldYourGround - Attributes[GameAttribute.Cannot_Dodge] = true; - Attributes[GameAttribute.Block_Chance] += 0.15f; + Attributes[GameAttributes.Cannot_Dodge] = true; + Attributes[GameAttributes.Block_Chance] += 0.15f; break; case 310783: //IronMaiden - Attributes[GameAttribute.Thorns_Fixed, 0] += 87.17f * Attributes[GameAttribute.Level]; + Attributes[GameAttributes.Thorns_Fixed, 0] += 87.17f * Attributes[GameAttributes.Level]; break; case 311629: //Finery World.BuffManager.RemoveBuffs(this, 311629); @@ -1381,8 +1377,8 @@ public class Player : Actor, IMessageConsumer, IUpdateable switch (passiveId) { case 470764: //HugeEssense - Attributes[GameAttribute.Resource_Max_Bonus, - Attributes[GameAttribute.Resource_Type_Primary] - 1] += 40; + Attributes[GameAttributes.Resource_Max_Bonus, + Attributes[GameAttributes.Resource_Type_Primary] - 1] += 40; break; case 470725: World.BuffManager.RemoveBuffs(this, 470725); @@ -1402,18 +1398,18 @@ public class Player : Actor, IMessageConsumer, IUpdateable for (var i = 0; i < SkillSet.ActiveSkills.Length; i++) if (SkillSet.ActiveSkills[i].snoSkill != -1) { - Attributes[GameAttribute.Skill, SkillSet.ActiveSkills[i].snoSkill] = 1; + Attributes[GameAttributes.Skill, SkillSet.ActiveSkills[i].snoSkill] = 1; //scripted //this.Attributes[GameAttribute.Skill_Total, this.SkillSet.ActiveSkills[i].snoSkill] = 1; // update rune attributes for new skill - Attributes[GameAttribute.Rune_A, SkillSet.ActiveSkills[i].snoSkill] = + Attributes[GameAttributes.Rune_A, SkillSet.ActiveSkills[i].snoSkill] = SkillSet.ActiveSkills[i].snoRune == 0 ? 1 : 0; - Attributes[GameAttribute.Rune_B, SkillSet.ActiveSkills[i].snoSkill] = + Attributes[GameAttributes.Rune_B, SkillSet.ActiveSkills[i].snoSkill] = SkillSet.ActiveSkills[i].snoRune == 1 ? 1 : 0; - Attributes[GameAttribute.Rune_C, SkillSet.ActiveSkills[i].snoSkill] = + Attributes[GameAttributes.Rune_C, SkillSet.ActiveSkills[i].snoSkill] = SkillSet.ActiveSkills[i].snoRune == 2 ? 1 : 0; - Attributes[GameAttribute.Rune_D, SkillSet.ActiveSkills[i].snoSkill] = + Attributes[GameAttributes.Rune_D, SkillSet.ActiveSkills[i].snoSkill] = SkillSet.ActiveSkills[i].snoRune == 3 ? 1 : 0; - Attributes[GameAttribute.Rune_E, SkillSet.ActiveSkills[i].snoSkill] = + Attributes[GameAttributes.Rune_E, SkillSet.ActiveSkills[i].snoSkill] = SkillSet.ActiveSkills[i].snoRune == 4 ? 1 : 0; var power = PowerLoader.CreateImplementationForPowerSNO(SkillSet.ActiveSkills[i].snoSkill); @@ -1425,71 +1421,71 @@ public class Player : Actor, IMessageConsumer, IUpdateable if (SkillSet.PassiveSkills[i] != -1) { // switch on passive skill - Attributes[GameAttribute.Trait, SkillSet.PassiveSkills[i]] = 1; - Attributes[GameAttribute.Skill, SkillSet.PassiveSkills[i]] = 1; + Attributes[GameAttributes.Trait, SkillSet.PassiveSkills[i]] = 1; + Attributes[GameAttributes.Skill, SkillSet.PassiveSkills[i]] = 1; //scripted //this.Attributes[GameAttribute.Skill_Total, this.SkillSet.PassiveSkills[i]] = 1; } if (Toon.Class == ToonClass.Monk) //Setting power range override { - Attributes[GameAttribute.PowerBonusAttackRadius, 0x000176C4] = 20f; //Fists of Thunder - if (Attributes[GameAttribute.Rune_A, 0x00017B56] > 0) //Way of the Hundred Fists -> Fists of Fury - Attributes[GameAttribute.PowerBonusAttackRadius, 0x00017B56] = 15f; + Attributes[GameAttributes.PowerBonusAttackRadius, 0x000176C4] = 20f; //Fists of Thunder + if (Attributes[GameAttributes.Rune_A, 0x00017B56] > 0) //Way of the Hundred Fists -> Fists of Fury + Attributes[GameAttributes.PowerBonusAttackRadius, 0x00017B56] = 15f; } } public void SetAttributesOther() { //Bonus stats - Attributes[GameAttribute.Hit_Chance] = 1f; + Attributes[GameAttributes.Hit_Chance] = 1f; - Attributes[GameAttribute.Attacks_Per_Second] = 1.2f; + Attributes[GameAttributes.Attacks_Per_Second] = 1.2f; //this.Attributes[GameAttribute.Attacks_Per_Second_Item] = 1.199219f; - Attributes[GameAttribute.Crit_Percent_Cap] = Toon.HeroTable.CritPercentCap; + Attributes[GameAttributes.Crit_Percent_Cap] = Toon.HeroTable.CritPercentCap; //scripted //this.Attributes[GameAttribute.Casting_Speed_Total] = 1f; - Attributes[GameAttribute.Casting_Speed] = 1f; + Attributes[GameAttributes.Casting_Speed] = 1f; //Basic stats - Attributes[GameAttribute.Level_Cap] = Program.MaxLevel; - Attributes[GameAttribute.Level] = Level; - Attributes[GameAttribute.Alt_Level] = ParagonLevel; + Attributes[GameAttributes.Level_Cap] = Program.MaxLevel; + Attributes[GameAttributes.Level] = Level; + Attributes[GameAttributes.Alt_Level] = ParagonLevel; if (Level == Program.MaxLevel) { - Attributes[GameAttribute.Alt_Experience_Next_Lo] = (int)(ExperienceNext % uint.MaxValue); - Attributes[GameAttribute.Alt_Experience_Next_Hi] = (int)(ExperienceNext / uint.MaxValue); + Attributes[GameAttributes.Alt_Experience_Next_Lo] = (int)(ExperienceNext % uint.MaxValue); + Attributes[GameAttributes.Alt_Experience_Next_Hi] = (int)(ExperienceNext / uint.MaxValue); } else { - Attributes[GameAttribute.Experience_Next_Lo] = (int)(ExperienceNext % uint.MaxValue); - Attributes[GameAttribute.Experience_Next_Hi] = (int)(ExperienceNext / uint.MaxValue); + Attributes[GameAttributes.Experience_Next_Lo] = (int)(ExperienceNext % uint.MaxValue); + Attributes[GameAttributes.Experience_Next_Hi] = (int)(ExperienceNext / uint.MaxValue); //this.Attributes[GameAttribute.Alt_Experience_Next] = 0; } - Attributes[GameAttribute.Experience_Granted_Low] = 1000; - Attributes[GameAttribute.Armor] = Toon.HeroTable.Armor; - Attributes[GameAttribute.Damage_Min, 0] = Toon.HeroTable.Dmg; + Attributes[GameAttributes.Experience_Granted_Low] = 1000; + Attributes[GameAttributes.Armor] = Toon.HeroTable.Armor; + Attributes[GameAttributes.Damage_Min, 0] = Toon.HeroTable.Dmg; //scripted //this.Attributes[GameAttribute.Armor_Total] - Attributes[GameAttribute.Strength] = (int)Strength; - Attributes[GameAttribute.Dexterity] = (int)Dexterity; - Attributes[GameAttribute.Vitality] = (int)Vitality; - Attributes[GameAttribute.Intelligence] = (int)Intelligence; - Attributes[GameAttribute.Core_Attributes_From_Item_Bonus_Multiplier] = 1; + Attributes[GameAttributes.Strength] = (int)Strength; + Attributes[GameAttributes.Dexterity] = (int)Dexterity; + Attributes[GameAttributes.Vitality] = (int)Vitality; + Attributes[GameAttributes.Intelligence] = (int)Intelligence; + Attributes[GameAttributes.Core_Attributes_From_Item_Bonus_Multiplier] = 1; //Hitpoints have to be calculated after Vitality - Attributes[GameAttribute.Hitpoints_Factor_Level] = Toon.HeroTable.HitpointsFactorLevel; - Attributes[GameAttribute.Hitpoints_Factor_Vitality] = 10f + Math.Max(Level - 35, 0); + Attributes[GameAttributes.Hitpoints_Factor_Level] = Toon.HeroTable.HitpointsFactorLevel; + Attributes[GameAttributes.Hitpoints_Factor_Vitality] = 10f + Math.Max(Level - 35, 0); //this.Attributes[GameAttribute.Hitpoints_Max] = 276f; - Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] = (int)1; - Attributes[GameAttribute.Hitpoints_Factor_Level] = (int)Toon.HeroTable.HitpointsFactorLevel; - Attributes[GameAttribute.Hitpoints_Factor_Vitality] = 10f; // + Math.Max(this.Level - 35, 0); - Attributes[GameAttribute.Hitpoints_Max] = (int)Toon.HeroTable.HitpointsMax; + Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] = (int)1; + Attributes[GameAttributes.Hitpoints_Factor_Level] = (int)Toon.HeroTable.HitpointsFactorLevel; + Attributes[GameAttributes.Hitpoints_Factor_Vitality] = 10f; // + Math.Max(this.Level - 35, 0); + Attributes[GameAttributes.Hitpoints_Max] = (int)Toon.HeroTable.HitpointsMax; - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; - Attributes[GameAttribute.Corpse_Resurrection_Charges] = 3; + Attributes[GameAttributes.Corpse_Resurrection_Charges] = 3; //TestOutPutItemAttributes(); //Activate this only for finding item stats. Attributes.BroadcastChangedIfRevealed(); } @@ -1598,16 +1594,16 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void JewelUpgrade(GameClient client, JewelUpgradeMessage message) { var Jewel = Inventory.GetItemByDynId(this, message.ActorID); - Jewel.Attributes[GameAttribute.Jewel_Rank]++; + Jewel.Attributes[GameAttributes.Jewel_Rank]++; Jewel.Attributes.BroadcastChangedIfRevealed(); - Attributes[GameAttribute.Jewel_Upgrades_Used]++; + Attributes[GameAttributes.Jewel_Upgrades_Used]++; Attributes.BroadcastChangedIfRevealed(); - if (Attributes[GameAttribute.Jewel_Upgrades_Used] == Attributes[GameAttribute.Jewel_Upgrades_Max] + - Attributes[GameAttribute.Jewel_Upgrades_Bonus]) + if (Attributes[GameAttributes.Jewel_Upgrades_Used] == Attributes[GameAttributes.Jewel_Upgrades_Max] + + Attributes[GameAttributes.Jewel_Upgrades_Bonus]) { - Attributes[GameAttribute.Jewel_Upgrades_Max] = 0; - Attributes[GameAttribute.Jewel_Upgrades_Bonus] = 0; - Attributes[GameAttribute.Jewel_Upgrades_Used] = 0; + Attributes[GameAttributes.Jewel_Upgrades_Max] = 0; + Attributes[GameAttributes.Jewel_Upgrades_Bonus] = 0; + Attributes[GameAttributes.Jewel_Upgrades_Used] = 0; } InGameClient.SendMessage(new JewelUpgradeResultsMessage() @@ -1649,11 +1645,11 @@ public class Player : Actor, IMessageConsumer, IUpdateable hireling.SetUpAttributes(this); hireling.GBHandle.Type = 4; - hireling.Attributes[GameAttribute.Pet_Creator] = PlayerIndex + 1; - hireling.Attributes[GameAttribute.Pet_Type] = 1; - hireling.Attributes[GameAttribute.Pet_Owner] = PlayerIndex + 1; - hireling.Attributes[GameAttribute.Untargetable] = false; - hireling.Attributes[GameAttribute.NPC_Is_Escorting] = true; + hireling.Attributes[GameAttributes.Pet_Creator] = PlayerIndex + 1; + hireling.Attributes[GameAttributes.Pet_Type] = 1; + hireling.Attributes[GameAttributes.Pet_Owner] = PlayerIndex + 1; + hireling.Attributes[GameAttributes.Untargetable] = false; + hireling.Attributes[GameAttributes.NPC_Is_Escorting] = true; hireling.EnterWorld(RandomDirection(Position, 3, 10)); //Random hireling.Brain = new HirelingBrain(hireling, this); @@ -1883,13 +1879,13 @@ public class Player : Actor, IMessageConsumer, IUpdateable lootRunObelisk = World.GetActorBySNO(ActorSno._x1_openworld_lootrunobelisk_b); lootRunObelisk.PlayAnimation(5, (AnimationSno)lootRunObelisk.AnimationSet.TagMapAnimDefault[AnimationSetKeys.Opening]); - lootRunObelisk.Attributes[GameAttribute.Team_Override] = activated ? -1 : 2; - lootRunObelisk.Attributes[GameAttribute.Untargetable] = !activated; - lootRunObelisk.Attributes[GameAttribute.NPC_Is_Operatable] = activated; - lootRunObelisk.Attributes[GameAttribute.Operatable] = activated; - lootRunObelisk.Attributes[GameAttribute.Operatable_Story_Gizmo] = activated; - lootRunObelisk.Attributes[GameAttribute.Disabled] = !activated; - lootRunObelisk.Attributes[GameAttribute.Immunity] = !activated; + lootRunObelisk.Attributes[GameAttributes.Team_Override] = activated ? -1 : 2; + lootRunObelisk.Attributes[GameAttributes.Untargetable] = !activated; + lootRunObelisk.Attributes[GameAttributes.NPC_Is_Operatable] = activated; + lootRunObelisk.Attributes[GameAttributes.Operatable] = activated; + lootRunObelisk.Attributes[GameAttributes.Operatable_Story_Gizmo] = activated; + lootRunObelisk.Attributes[GameAttributes.Disabled] = !activated; + lootRunObelisk.Attributes[GameAttributes.Immunity] = !activated; lootRunObelisk.Attributes.BroadcastChangedIfRevealed(); lootRunObelisk.CollFlags = 0; @@ -2001,7 +1997,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable InGameClient.Game.ActiveNephalemPortal = true; InGameClient.Game.NephalemGreater = true; //disable banner while greater is active enable once boss is killed or portal is closed /advocaite - Attributes[GameAttribute.Banner_Usable] = false; + Attributes[GameAttributes.Banner_Usable] = false; map = maps.PickRandom(); newTagMap.Add(new TagKeySNO(526850), new TagMapEntry(526850, (int)map, 0)); //World newTagMap.Add(new TagKeySNO(526853), new TagMapEntry(526853, 288482, 0)); //Zone @@ -2032,13 +2028,13 @@ public class Player : Actor, IMessageConsumer, IUpdateable lootRunObelisk = World.GetActorBySNO(ActorSno._x1_openworld_lootrunobelisk_b); lootRunObelisk.PlayAnimation(5, (AnimationSno)lootRunObelisk.AnimationSet.TagMapAnimDefault[AnimationSetKeys.Opening]); - lootRunObelisk.Attributes[GameAttribute.Team_Override] = activated ? -1 : 2; - lootRunObelisk.Attributes[GameAttribute.Untargetable] = !activated; - lootRunObelisk.Attributes[GameAttribute.NPC_Is_Operatable] = activated; - lootRunObelisk.Attributes[GameAttribute.Operatable] = activated; - lootRunObelisk.Attributes[GameAttribute.Operatable_Story_Gizmo] = activated; - lootRunObelisk.Attributes[GameAttribute.Disabled] = !activated; - lootRunObelisk.Attributes[GameAttribute.Immunity] = !activated; + lootRunObelisk.Attributes[GameAttributes.Team_Override] = activated ? -1 : 2; + lootRunObelisk.Attributes[GameAttributes.Untargetable] = !activated; + lootRunObelisk.Attributes[GameAttributes.NPC_Is_Operatable] = activated; + lootRunObelisk.Attributes[GameAttributes.Operatable] = activated; + lootRunObelisk.Attributes[GameAttributes.Operatable_Story_Gizmo] = activated; + lootRunObelisk.Attributes[GameAttributes.Disabled] = !activated; + lootRunObelisk.Attributes[GameAttributes.Immunity] = !activated; lootRunObelisk.Attributes.BroadcastChangedIfRevealed(); lootRunObelisk.CollFlags = 0; @@ -2141,7 +2137,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable { Field0 = -1 }); - plr.Attributes[GameAttribute.Tiered_Loot_Run_Death_Count] = 0; + plr.Attributes[GameAttributes.Tiered_Loot_Run_Death_Count] = 0; } }); @@ -2192,7 +2188,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable var bonus = ItemGenerator.GetParagonBonusTable(Toon.Class).FirstOrDefault(b => b.Hash == message.BonusGBID); if (bonus == null) return; - if (message.Amount > Attributes[GameAttribute.Paragon_Bonus_Points_Available, bonus.Category]) return; + if (message.Amount > Attributes[GameAttributes.Paragon_Bonus_Points_Available, bonus.Category]) return; //if (this.ParagonBonuses[(bonus.Category * 4) + bonus.Index - 1] + (byte)message.Amount > bonus.Limit) return; // message.Amount have the value send to add on attr of Paragon tabs. @@ -2294,19 +2290,18 @@ public class Player : Actor, IMessageConsumer, IUpdateable var oldSNOSkill = SkillSet.ActiveSkills[message.SkillIndex].snoSkill; // find replaced skills SNO. if (oldSNOSkill != -1) { - Attributes[GameAttribute.Skill, oldSNOSkill] = 0; + Attributes[GameAttributes.Skill, oldSNOSkill] = 0; World.BuffManager.RemoveBuffs(this, oldSNOSkill); - var rem = new List(); - foreach (var fol in Followers.Where(f => + var rem = Followers.Where(f => World.GetActorByGlobalId(f.Key) == null || - World.GetActorByGlobalId(f.Key).Attributes[GameAttribute.Summoned_By_SNO] == oldSNOSkill)) - rem.Add(fol.Key); + World.GetActorByGlobalId(f.Key).Attributes[GameAttributes.Summoned_By_SNO] == oldSNOSkill) + .Select(f => f.Key); foreach (var rm in rem) DestroyFollowerById(rm); } - Attributes[GameAttribute.Skill, message.SNOSkill] = 1; + Attributes[GameAttributes.Skill, message.SNOSkill] = 1; //scripted //this.Attributes[GameAttribute.Skill_Total, message.SNOSkill] = 1; SkillSet.ActiveSkills[message.SkillIndex].snoSkill = message.SNOSkill; SkillSet.ActiveSkills[message.SkillIndex].snoRune = message.RuneIndex; @@ -2349,16 +2344,16 @@ public class Player : Actor, IMessageConsumer, IUpdateable { World.BuffManager.RemoveAllBuffs(this); // switch off old passive skill - Attributes[GameAttribute.Trait, oldSNOSkill] = 0; - Attributes[GameAttribute.Skill, oldSNOSkill] = 0; + Attributes[GameAttributes.Trait, oldSNOSkill] = 0; + Attributes[GameAttributes.Skill, oldSNOSkill] = 0; //scripted //this.Attributes[GameAttribute.Skill_Total, oldSNOSkill] = 0; } if (message.SNOPowers[i] != -1) { // switch on new passive skill - Attributes[GameAttribute.Trait, message.SNOPowers[i]] = 1; - Attributes[GameAttribute.Skill, message.SNOPowers[i]] = 1; + Attributes[GameAttributes.Trait, message.SNOPowers[i]] = 1; + Attributes[GameAttributes.Skill, message.SNOPowers[i]] = 1; //scripted //this.Attributes[GameAttribute.Skill_Total, message.SNOPowers[i]] = 1; } @@ -2389,12 +2384,12 @@ public class Player : Actor, IMessageConsumer, IUpdateable var oldSNOSkill = SkillSet.ActiveSkills[message.SkillIndex].snoSkill; // find replaced skills SNO. if (oldSNOSkill != -1) { - Attributes[GameAttribute.Skill, oldSNOSkill] = 0; + Attributes[GameAttributes.Skill, oldSNOSkill] = 0; World.BuffManager.RemoveBuffs(this, oldSNOSkill); var rem = new List(); foreach (var fol in Followers.Where(f => - Math.Abs(World.GetActorByGlobalId(f.Key).Attributes[GameAttribute.Summoned_By_SNO] - + Math.Abs(World.GetActorByGlobalId(f.Key).Attributes[GameAttributes.Summoned_By_SNO] - oldSNOSkill) < Globals.FLOAT_TOLERANCE)) rem.Add(fol.Key); foreach (var rm in rem) @@ -2416,10 +2411,10 @@ public class Player : Actor, IMessageConsumer, IUpdateable //this.Attributes[GameAttribute.Attacks_Per_Second_Bonus] = 1.0f; //this.Attributes[GameAttribute.Gold] = 1; //[GameAttribute.Damage_Weapon_Min_Total, 0] - Attributes[GameAttribute.Attacks_Per_Second_Percent] = 0; - Attributes[GameAttribute.Attacks_Per_Second_Percent_Uncapped] = 0; - Attributes[GameAttribute.Attacks_Per_Second_Percent_Reduction] = 0; - Attributes[GameAttribute.Attacks_Per_Second_Percent_Cap] = 0; + Attributes[GameAttributes.Attacks_Per_Second_Percent] = 0; + Attributes[GameAttributes.Attacks_Per_Second_Percent_Uncapped] = 0; + Attributes[GameAttributes.Attacks_Per_Second_Percent_Reduction] = 0; + Attributes[GameAttributes.Attacks_Per_Second_Percent_Cap] = 0; //this.Attributes[GameAttribute.Gold_PickUp_Radius] = 5f; /* this.Attributes[GameAttribute.Experience_Bonus_Percent_Anniversary_Buff] = 100; @@ -2473,7 +2468,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable actor.NumberInWorld); #else #endif - if (actor.GBHandle.Type == 1 && actor.Attributes[GameAttribute.TeamID] == 10) + if (actor.GBHandle.Type == 1 && actor.Attributes[GameAttributes.TeamID] == 10) ExpBonusData.MonsterAttacked(InGameClient.Game.TickCounter); actor.OnTargeted(this, message); } @@ -2570,7 +2565,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable if (World.Game.Paused || BetweenWorlds) return; - if (message.MovementSpeed > Attributes[GameAttribute.Running_Rate_Total] * 1.5f && !SpeedCheckDisabled) + if (message.MovementSpeed > Attributes[GameAttributes.Running_Rate_Total] * 1.5f && !SpeedCheckDisabled) { _hackCounter++; if (_hackCounter > 5) _hackCounter = 0; @@ -2680,7 +2675,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable } } // Reset resurrection charges on zone change - TODO: do not reset charges on reentering the same zone - Attributes[GameAttribute.Corpse_Resurrection_Charges] = GameServerConfig.Instance.ResurrectionCharges; + Attributes[GameAttributes.Corpse_Resurrection_Charges] = GameServerConfig.Instance.ResurrectionCharges; #if DEBUG Logger.Warn($"Player Location {Toon.Name}, Scene: {CurrentScene.SceneSNO.Name} SNO: {CurrentScene.SceneSNO.Id} LevelArea: {CurrentScene.Specification.SNOLevelAreas[0]}"); @@ -2807,7 +2802,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable { if (ActiveHireling == null) return; - switch (ActiveHireling.Attributes[GameAttribute.Hireling_Class]) + switch (ActiveHireling.Attributes[GameAttributes.Hireling_Class]) { case 1: if (ActiveHireling is Templar) @@ -2843,7 +2838,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable Logger.MethodTrace($"{message.HirelingID} - {message.PowerSNOId}"); var hireling = World.GetActorByGlobalId(World.GetGlobalId(this, message.HirelingID)); if (hireling == null) return; - switch (hireling.Attributes[GameAttribute.Hireling_Class]) + switch (hireling.Attributes[GameAttributes.Hireling_Class]) { case 1: if (hireling is not Templar templar) return; @@ -2876,10 +2871,10 @@ public class Player : Actor, IMessageConsumer, IUpdateable Revive(CheckPointPosition); break; case 2: - if (Attributes[GameAttribute.Corpse_Resurrection_Charges] > 0) + if (Attributes[GameAttributes.Corpse_Resurrection_Charges] > 0) { Revive(Position); - Attributes[GameAttribute.Corpse_Resurrection_Charges]--; + Attributes[GameAttributes.Corpse_Resurrection_Charges]--; } break; @@ -3035,27 +3030,27 @@ public class Player : Actor, IMessageConsumer, IUpdateable if (World != null && SkillSet.HasSkill(312736) && InGameClient.Game.TickCounter - LastMovementTick > 90) World.BuffManager.AddBuff(this, this, new MonkDashingStrike.DashingStrikeCountBuff()); else if (!SkillSet.HasSkill(312736)) - Attributes[GameAttribute.Skill_Charges, 312736] = 0; + Attributes[GameAttributes.Skill_Charges, 312736] = 0; if (World != null && SkillSet.HasSkill(129217) && InGameClient.Game.TickCounter - LastMovementTick > 90) World.BuffManager.AddBuff(this, this, new Sentry.SentryCountBuff()); else if (!SkillSet.HasSkill(129217)) - Attributes[GameAttribute.Skill_Charges, 129217] = 0; + Attributes[GameAttributes.Skill_Charges, 129217] = 0; if (World != null && SkillSet.HasSkill(75301) && InGameClient.Game.TickCounter - LastMovementTick > 90) World.BuffManager.AddBuff(this, this, new SpikeTrap.SpikeCountBuff()); else if (!SkillSet.HasSkill(75301)) - Attributes[GameAttribute.Skill_Charges, 75301] = 0; + Attributes[GameAttributes.Skill_Charges, 75301] = 0; if (World != null && SkillSet.HasSkill(464896) && InGameClient.Game.TickCounter - LastMovementTick > 90) World.BuffManager.AddBuff(this, this, new BoneSpirit.SpiritCountBuff()); else if (!SkillSet.HasSkill(464896)) - Attributes[GameAttribute.Skill_Charges, 464896] = 0; + Attributes[GameAttributes.Skill_Charges, 464896] = 0; if (World != null && SkillSet.HasSkill(97435) && InGameClient.Game.TickCounter - LastMovementTick > 90) World.BuffManager.AddBuff(this, this, new FuriousCharge.FuriousChargeCountBuff()); else if (!SkillSet.HasSkill(97435)) - Attributes[GameAttribute.Skill_Charges, 97435] = 0; + Attributes[GameAttributes.Skill_Charges, 97435] = 0; Attributes.BroadcastChangedIfRevealed(); lock (TimedActions) @@ -3266,7 +3261,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable } else { - if (Attributes[GameAttribute.Power_Cooldown, 451537] > InGameClient.Game.TickCounter) + if (Attributes[GameAttributes.Power_Cooldown, 451537] > InGameClient.Game.TickCounter) { } else @@ -3279,12 +3274,12 @@ public class Player : Actor, IMessageConsumer, IUpdateable NGolem.Position = RandomDirection(Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - NGolem.Attributes[GameAttribute.Untargetable] = true; + NGolem.Attributes[GameAttributes.Untargetable] = true; NGolem.EnterWorld(NGolem.Position); //(NGolem as BaseGolem).Brain.Activate(); - NGolem.Attributes[GameAttribute.Untargetable] = false; + NGolem.Attributes[GameAttributes.Untargetable] = false; NGolem.Attributes.BroadcastChangedIfRevealed(); ActiveGolem = NGolem; break; @@ -3294,12 +3289,12 @@ public class Player : Actor, IMessageConsumer, IUpdateable CFGolem.Position = RandomDirection(Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - CFGolem.Attributes[GameAttribute.Untargetable] = true; + CFGolem.Attributes[GameAttributes.Untargetable] = true; CFGolem.EnterWorld(CFGolem.Position); //(CFGolem as ConsumeFleshGolem).Brain.Activate(); - CFGolem.Attributes[GameAttribute.Untargetable] = false; + CFGolem.Attributes[GameAttributes.Untargetable] = false; CFGolem.Attributes.BroadcastChangedIfRevealed(); ActiveGolem = CFGolem; @@ -3310,12 +3305,12 @@ public class Player : Actor, IMessageConsumer, IUpdateable IGolem.Position = RandomDirection(Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - IGolem.Attributes[GameAttribute.Untargetable] = true; + IGolem.Attributes[GameAttributes.Untargetable] = true; IGolem.EnterWorld(IGolem.Position); //(IGolem as IceGolem).Brain.Activate(); - IGolem.Attributes[GameAttribute.Untargetable] = false; + IGolem.Attributes[GameAttributes.Untargetable] = false; IGolem.Attributes.BroadcastChangedIfRevealed(); ActiveGolem = IGolem; break; @@ -3325,12 +3320,12 @@ public class Player : Actor, IMessageConsumer, IUpdateable BGolem.Position = RandomDirection(Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - BGolem.Attributes[GameAttribute.Untargetable] = true; + BGolem.Attributes[GameAttributes.Untargetable] = true; BGolem.EnterWorld(BGolem.Position); //(BGolem as BoneGolem).Brain.Activate(); - BGolem.Attributes[GameAttribute.Untargetable] = false; + BGolem.Attributes[GameAttributes.Untargetable] = false; BGolem.Attributes.BroadcastChangedIfRevealed(); ActiveGolem = BGolem; break; @@ -3340,12 +3335,12 @@ public class Player : Actor, IMessageConsumer, IUpdateable DGolem.Position = RandomDirection(Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - DGolem.Attributes[GameAttribute.Untargetable] = true; + DGolem.Attributes[GameAttributes.Untargetable] = true; DGolem.EnterWorld(DGolem.Position); //(DGolem as DecayGolem).Brain.Activate(); - DGolem.Attributes[GameAttribute.Untargetable] = false; + DGolem.Attributes[GameAttributes.Untargetable] = false; DGolem.Attributes.BroadcastChangedIfRevealed(); ActiveGolem = DGolem; break; @@ -3355,19 +3350,19 @@ public class Player : Actor, IMessageConsumer, IUpdateable BlGolem.Position = RandomDirection(Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - BlGolem.Attributes[GameAttribute.Untargetable] = true; + BlGolem.Attributes[GameAttributes.Untargetable] = true; BlGolem.EnterWorld(BlGolem.Position); //(BlGolem as BloodGolem).Brain.Activate(); - BlGolem.Attributes[GameAttribute.Untargetable] = false; + BlGolem.Attributes[GameAttributes.Untargetable] = false; BlGolem.Attributes.BroadcastChangedIfRevealed(); ActiveGolem = BlGolem; break; } (ActiveGolem as Minion).Brain.Activate(); - ActiveGolem.Attributes[GameAttribute.Untargetable] = false; + ActiveGolem.Attributes[GameAttributes.Untargetable] = false; ActiveGolem.Attributes.BroadcastChangedIfRevealed(); ActiveGolem.PlayActionAnimation(AnimationSno.p6_bloodgolem_spawn_01); } @@ -3390,11 +3385,11 @@ public class Player : Actor, IMessageConsumer, IUpdateable public T RuneSelect(int powerSno, T none, T runeA, T runeB, T runeC, T runeD, T runeE) { - if (Attributes[GameAttribute.Rune_A, powerSno] > 0) return runeA; - if (Attributes[GameAttribute.Rune_B, powerSno] > 0) return runeB; - if (Attributes[GameAttribute.Rune_C, powerSno] > 0) return runeC; - if (Attributes[GameAttribute.Rune_D, powerSno] > 0) return runeD; - if (Attributes[GameAttribute.Rune_E, powerSno] > 0) return runeE; + if (Attributes[GameAttributes.Rune_A, powerSno] > 0) return runeA; + if (Attributes[GameAttributes.Rune_B, powerSno] > 0) return runeB; + if (Attributes[GameAttributes.Rune_C, powerSno] > 0) return runeC; + if (Attributes[GameAttributes.Rune_D, powerSno] > 0) return runeD; + if (Attributes[GameAttributes.Rune_E, powerSno] > 0) return runeE; return none; } @@ -3726,8 +3721,8 @@ public class Player : Actor, IMessageConsumer, IUpdateable Position = Position }); - _CurrentHPValue = Attributes[GameAttribute.Hitpoints_Cur]; - _CurrentResourceValue = Attributes[GameAttribute.Resource_Cur, (int)Toon.HeroTable.PrimaryResource + 1]; + _CurrentHPValue = Attributes[GameAttributes.Hitpoints_Cur]; + _CurrentResourceValue = Attributes[GameAttributes.Resource_Cur, (int)Toon.HeroTable.PrimaryResource + 1]; } public override void AfterChangeWorld() @@ -3748,8 +3743,8 @@ public class Player : Actor, IMessageConsumer, IUpdateable if (Math.Abs(_CurrentHPValue - (-1)) > Globals.FLOAT_TOLERANCE) { - Attributes[GameAttribute.Hitpoints_Cur] = _CurrentHPValue; - Attributes[GameAttribute.Resource_Cur, (int)Toon.HeroTable.PrimaryResource + 1] = _CurrentResourceValue; + Attributes[GameAttributes.Hitpoints_Cur] = _CurrentHPValue; + Attributes[GameAttributes.Resource_Cur, (int)Toon.HeroTable.PrimaryResource + 1] = _CurrentResourceValue; Attributes.BroadcastChangedIfRevealed(); _CurrentHPValue = -1; } @@ -3764,7 +3759,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable #region hero-state - [Obsolete("Does this make sense?")] + /*[Obsolete("Does this make sense?")] private void WTF() { Attributes[GameAttribute.Power_Buff_0_Visual_Effect_None, 208468] = true; @@ -3843,7 +3838,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable Attributes[GameAttribute.Buff_Icon_End_Tick0, 439438] = 0; Attributes[GameAttribute.Buff_Icon_Count0, 212032] = 0; Attributes.BroadcastChangedIfRevealed(); - } + }*/ /// /// Allows hero state message to be sent when hero's some property gets updated. @@ -3882,22 +3877,22 @@ public class Player : Actor, IMessageConsumer, IUpdateable ActorId = DynamicID(this), Position = Position }); - Attributes[GameAttribute.QueueDeath] = state; - Attributes[GameAttribute.Disabled] = state; - Attributes[GameAttribute.Waiting_To_Accept_Resurrection] = false; - Attributes[GameAttribute.Invulnerable] = state; + Attributes[GameAttributes.QueueDeath] = state; + Attributes[GameAttributes.Disabled] = state; + Attributes[GameAttributes.Waiting_To_Accept_Resurrection] = false; + Attributes[GameAttributes.Invulnerable] = state; //this.Attributes[GameAttribute.Stunned] = state; - Attributes[GameAttribute.Immobolize] = state; - Attributes[GameAttribute.Hidden] = state; - Attributes[GameAttribute.Untargetable] = state; - Attributes[GameAttribute.CantStartDisplayedPowers] = state; - Attributes[GameAttribute.IsContentRestrictedActor] = state; + Attributes[GameAttributes.Immobolize] = state; + Attributes[GameAttributes.Hidden] = state; + Attributes[GameAttributes.Untargetable] = state; + Attributes[GameAttributes.CantStartDisplayedPowers] = state; + Attributes[GameAttributes.IsContentRestrictedActor] = state; - Attributes[GameAttribute.Rest_Experience_Lo] = 0; - Attributes[GameAttribute.Rest_Experience_Bonus_Percent] = 0; + Attributes[GameAttributes.Rest_Experience_Lo] = 0; + Attributes[GameAttributes.Rest_Experience_Bonus_Percent] = 0; Attributes.BroadcastChangedIfRevealed(); - if (World.Game.PvP) Attributes[GameAttribute.Resurrect_As_Observer] = state; + if (World.Game.PvP) Attributes[GameAttributes.Resurrect_As_Observer] = state; //this.Attributes[GameAttribute.Observer] = !state; //this.Attributes[GameAttribute.Corpse_Resurrection_Charges] = 1; // Enable this to allow unlimited resurrection at corpse //this.Attributes[GameAttribute.Corpse_Resurrection_Allowed_Game_Time] = this.World.Game.TickCounter + 300; // Timer for auto-revive (seems to be broken?) @@ -3906,7 +3901,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void Resurrect() { - Attributes[GameAttribute.Waiting_To_Accept_Resurrection] = true; + Attributes[GameAttributes.Waiting_To_Accept_Resurrection] = true; Attributes.BroadcastChangedIfRevealed(); } @@ -3961,9 +3956,9 @@ public class Player : Actor, IMessageConsumer, IUpdateable SetAttributesByParagon(); SetAttributesSkillSets(); - Attributes[GameAttribute.Resource_Cur, PrimaryResourceID] = 0f; + Attributes[GameAttributes.Resource_Cur, PrimaryResourceID] = 0f; if (Toon.Class == ToonClass.DemonHunter) - Attributes[GameAttribute.Resource_Cur, SecondaryResourceID] = 0f; + Attributes[GameAttributes.Resource_Cur, SecondaryResourceID] = 0f; Attributes.BroadcastChangedIfRevealed(); var skills = SkillSet.ActiveSkills.Select(s => s.snoSkill).ToList(); @@ -4004,7 +3999,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable } public float TotalStrength => - Attributes[GameAttribute.Strength] + Inventory.GetItemBonus(GameAttribute.Strength_Item); + Attributes[GameAttributes.Strength] + Inventory.GetItemBonus(GameAttributes.Strength_Item); public float Dexterity { @@ -4019,12 +4014,12 @@ public class Player : Actor, IMessageConsumer, IUpdateable } public float TotalDexterity => - Attributes[GameAttribute.Dexterity] + Inventory.GetItemBonus(GameAttribute.Dexterity_Item); + Attributes[GameAttributes.Dexterity] + Inventory.GetItemBonus(GameAttributes.Dexterity_Item); public float Vitality => Toon.HeroTable.Vitality + (Level - 1) * 2 * (ParagonLevel > 0 ? GameServerConfig.Instance.VitalityParagonMultiplier : GameServerConfig.Instance.VitalityMultiplier); public float TotalVitality => - Attributes[GameAttribute.Vitality] + Inventory.GetItemBonus(GameAttribute.Vitality_Item); + Attributes[GameAttributes.Vitality] + Inventory.GetItemBonus(GameAttributes.Vitality_Item); public float Intelligence { @@ -4037,8 +4032,8 @@ public class Player : Actor, IMessageConsumer, IUpdateable } } - public float TotalIntelligence => Attributes[GameAttribute.Intelligence] + - Inventory.GetItemBonus(GameAttribute.Intelligence_Item); + public float TotalIntelligence => Attributes[GameAttributes.Intelligence] + + Inventory.GetItemBonus(GameAttributes.Intelligence_Item); public float PrimaryAttribute { @@ -4056,13 +4051,13 @@ public class Player : Actor, IMessageConsumer, IUpdateable get { var dex = TotalDexterity; - var dodgeChance = dex / (250f * Attributes[GameAttribute.Level] + dex); + var dodgeChance = dex / (250f * Attributes[GameAttributes.Level] + dex); if (dex > 7500f) dodgeChance += 0.04f; else if (dex > 6500f) dodgeChance += 0.02f; else if (dex > 5500f) dodgeChance += 0.01f; - dodgeChance = 1f - (1f - dodgeChance) * (1f - Attributes[GameAttribute.Dodge_Chance_Bonus]); + dodgeChance = 1f - (1f - dodgeChance) * (1f - Attributes[GameAttributes.Dodge_Chance_Bonus]); return Math.Min(dodgeChance, 0.75f); } @@ -4187,25 +4182,25 @@ public class Player : Actor, IMessageConsumer, IUpdateable { //Logger.MethodTrace("Strength {0}", this.Inventory.GetItemBonus(GameAttribute.Strength_Item).ToString("F0")); var damageFromWeapon = - (Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Min_Total, 0) + - Inventory.GetItemBonus(GameAttribute.Damage_Weapon_Delta_Total, 0)) * (1f + PrimaryAttribute / 100f); + (Inventory.GetItemBonus(GameAttributes.Damage_Weapon_Min_Total, 0) + + Inventory.GetItemBonus(GameAttributes.Damage_Weapon_Delta_Total, 0)) * (1f + PrimaryAttribute / 100f); var totalDamage = (damageFromWeapon - + damageFromWeapon * Inventory.GetItemBonus(GameAttribute.Weapon_Crit_Chance) * - (1.5f + Inventory.GetItemBonus(GameAttribute.Crit_Damage_Percent))) - * Inventory.GetItemBonus(GameAttribute.Attacks_Per_Second_Total); + + damageFromWeapon * Inventory.GetItemBonus(GameAttributes.Weapon_Crit_Chance) * + (1.5f + Inventory.GetItemBonus(GameAttributes.Crit_Damage_Percent))) + * Inventory.GetItemBonus(GameAttributes.Attacks_Per_Second_Total); var serialized = ""; - serialized += Inventory.GetItemBonus(GameAttribute.Strength_Item).ToString("F0"); + serialized += Inventory.GetItemBonus(GameAttributes.Strength_Item).ToString("F0"); serialized += ";"; - serialized += Inventory.GetItemBonus(GameAttribute.Dexterity_Item).ToString("F0"); + serialized += Inventory.GetItemBonus(GameAttributes.Dexterity_Item).ToString("F0"); serialized += ";"; - serialized += Inventory.GetItemBonus(GameAttribute.Intelligence_Item).ToString("F0"); + serialized += Inventory.GetItemBonus(GameAttributes.Intelligence_Item).ToString("F0"); serialized += ";"; - serialized += Inventory.GetItemBonus(GameAttribute.Vitality_Item).ToString("F0"); + serialized += Inventory.GetItemBonus(GameAttributes.Vitality_Item).ToString("F0"); serialized += ";"; - serialized += Inventory.GetItemBonus(GameAttribute.Armor_Item).ToString("F0"); + serialized += Inventory.GetItemBonus(GameAttributes.Armor_Item).ToString("F0"); serialized += ";"; serialized += totalDamage.ToString("F0"); var dbStats = Toon.DBToon; @@ -4824,15 +4819,15 @@ public class Player : Actor, IMessageConsumer, IUpdateable { IsCasting = true; CastResult = result; - Attributes[GameAttribute.Looping_Animation_Start_Time] = World.Game.TickCounter; - Attributes[GameAttribute.Looping_Animation_End_Time] = World.Game.TickCounter + durationTicks; + Attributes[GameAttributes.Looping_Animation_Start_Time] = World.Game.TickCounter; + Attributes[GameAttributes.Looping_Animation_End_Time] = World.Game.TickCounter + durationTicks; CastingSnoPower = skillSno; if (CastingSnoPower != -1) { - Attributes[GameAttribute.Buff_Icon_Start_Tick0, CastingSnoPower] = World.Game.TickCounter; - Attributes[GameAttribute.Buff_Icon_End_Tick0, CastingSnoPower] = World.Game.TickCounter + durationTicks; - Attributes[GameAttribute.Buff_Icon_Count0, CastingSnoPower] = 1; - Attributes[GameAttribute.Power_Buff_0_Visual_Effect_None, CastingSnoPower] = true; + Attributes[GameAttributes.Buff_Icon_Start_Tick0, CastingSnoPower] = World.Game.TickCounter; + Attributes[GameAttributes.Buff_Icon_End_Tick0, CastingSnoPower] = World.Game.TickCounter + durationTicks; + Attributes[GameAttributes.Buff_Icon_Count0, CastingSnoPower] = 1; + Attributes[GameAttributes.Power_Buff_0_Visual_Effect_None, CastingSnoPower] = true; } Attributes.BroadcastChangedIfRevealed(); @@ -4841,14 +4836,14 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void StopCasting() { IsCasting = false; - Attributes[GameAttribute.Looping_Animation_Start_Time] = -1; - Attributes[GameAttribute.Looping_Animation_End_Time] = -1; + Attributes[GameAttributes.Looping_Animation_Start_Time] = -1; + Attributes[GameAttributes.Looping_Animation_End_Time] = -1; if (CastingSnoPower != -1) { - Attributes[GameAttribute.Buff_Icon_Start_Tick0, CastingSnoPower] = -1; - Attributes[GameAttribute.Buff_Icon_End_Tick0, CastingSnoPower] = -1; - Attributes[GameAttribute.Buff_Icon_Count0, CastingSnoPower] = 0; - Attributes[GameAttribute.Power_Buff_0_Visual_Effect_None, CastingSnoPower] = false; + Attributes[GameAttributes.Buff_Icon_Start_Tick0, CastingSnoPower] = -1; + Attributes[GameAttributes.Buff_Icon_End_Tick0, CastingSnoPower] = -1; + Attributes[GameAttributes.Buff_Icon_Count0, CastingSnoPower] = 0; + Attributes[GameAttributes.Power_Buff_0_Visual_Effect_None, CastingSnoPower] = false; } Attributes.BroadcastChangedIfRevealed(); @@ -4856,7 +4851,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable private void UpdateCastState() { - if (Attributes[GameAttribute.Looping_Animation_End_Time] <= World.Game.TickCounter) + if (Attributes[GameAttributes.Looping_Animation_End_Time] <= World.Game.TickCounter) { StopCasting(); CastResult.Invoke(); @@ -4935,10 +4930,10 @@ public class Player : Actor, IMessageConsumer, IUpdateable { if (resourceId == 2) return 0; return Math.Max( - (Attributes[GameAttribute.Resource_Max, resourceId] + - (Attributes[GameAttribute.Level] - 1) * Attributes[GameAttribute.Resource_Factor_Level, resourceId] + - Attributes[GameAttribute.Resource_Max_Bonus, resourceId]) * - (Attributes[GameAttribute.Resource_Max_Percent_Bonus, resourceId] + 1), 0); + (Attributes[GameAttributes.Resource_Max, resourceId] + + (Attributes[GameAttributes.Level] - 1) * Attributes[GameAttributes.Resource_Factor_Level, resourceId] + + Attributes[GameAttributes.Resource_Max_Bonus, resourceId]) * + (Attributes[GameAttributes.Resource_Max_Percent_Bonus, resourceId] + 1), 0); } public static readonly List LevelBorders = new() @@ -5076,14 +5071,14 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void AddRestExperience() { long exp_needed = 0; - if (Attributes[GameAttribute.Level] == Attributes[GameAttribute.Level_Cap]) - exp_needed = ParagonLevelBorders[Attributes[GameAttribute.Alt_Level]]; + if (Attributes[GameAttributes.Level] == Attributes[GameAttributes.Level_Cap]) + exp_needed = ParagonLevelBorders[Attributes[GameAttributes.Alt_Level]]; else - exp_needed = LevelBorders[Attributes[GameAttribute.Level]]; + exp_needed = LevelBorders[Attributes[GameAttributes.Level]]; - Attributes[GameAttribute.Rest_Experience_Lo] = - Math.Min(Attributes[GameAttribute.Rest_Experience_Lo] + (int)(exp_needed / 10), (int)exp_needed); - Attributes[GameAttribute.Rest_Experience_Bonus_Percent] = 0.25f; + Attributes[GameAttributes.Rest_Experience_Lo] = + Math.Min(Attributes[GameAttributes.Rest_Experience_Lo] + (int)(exp_needed / 10), (int)exp_needed); + Attributes[GameAttributes.Rest_Experience_Bonus_Percent] = 0.25f; Attributes.BroadcastChangedIfRevealed(); } @@ -5094,42 +5089,42 @@ public class Player : Actor, IMessageConsumer, IUpdateable lock (_XPlock) { if (Dead) return; - if (World.Game.IsHardcore && Attributes[GameAttribute.Level] >= 70) + if (World.Game.IsHardcore && Attributes[GameAttributes.Level] >= 70) addedExp *= 5; - if (Attributes[GameAttribute.Alt_Level] >= 515) + if (Attributes[GameAttributes.Alt_Level] >= 515) { - var XPcap = 91.262575239831f * Math.Pow(Attributes[GameAttribute.Alt_Level], 3) - - 44301.083380565047f * Math.Pow(Attributes[GameAttribute.Alt_Level], 2) + - 3829010.395566940308f * Attributes[GameAttribute.Alt_Level] + 322795582.543823242188f; - addedExp = (int)((float)(ParagonLevelBorders[Attributes[GameAttribute.Alt_Level]] / XPcap) * addedExp); + var XPcap = 91.262575239831f * Math.Pow(Attributes[GameAttributes.Alt_Level], 3) - + 44301.083380565047f * Math.Pow(Attributes[GameAttributes.Alt_Level], 2) + + 3829010.395566940308f * Attributes[GameAttributes.Alt_Level] + 322795582.543823242188f; + addedExp = (int)((float)(ParagonLevelBorders[Attributes[GameAttributes.Alt_Level]] / XPcap) * addedExp); } - if (Attributes[GameAttribute.Rest_Experience_Lo] > 0) + if (Attributes[GameAttributes.Rest_Experience_Lo] > 0) { - var multipliedExp = (int)Math.Min(addedExp * Attributes[GameAttribute.Rest_Experience_Bonus_Percent], - Attributes[GameAttribute.Rest_Experience_Lo]); + var multipliedExp = (int)Math.Min(addedExp * Attributes[GameAttributes.Rest_Experience_Bonus_Percent], + Attributes[GameAttributes.Rest_Experience_Lo]); addedExp += multipliedExp; - Attributes[GameAttribute.Rest_Experience_Lo] -= multipliedExp; + Attributes[GameAttributes.Rest_Experience_Lo] -= multipliedExp; } - if (Attributes[GameAttribute.Level] == Attributes[GameAttribute.Level_Cap]) - Attributes[GameAttribute.Alt_Experience_Next_Lo] -= addedExp; + if (Attributes[GameAttributes.Level] == Attributes[GameAttributes.Level_Cap]) + Attributes[GameAttributes.Alt_Experience_Next_Lo] -= addedExp; else - Attributes[GameAttribute.Experience_Next_Lo] -= addedExp; + Attributes[GameAttributes.Experience_Next_Lo] -= addedExp; // Levelup - while (Attributes[GameAttribute.Level] >= Attributes[GameAttribute.Level_Cap] - ? Attributes[GameAttribute.Alt_Experience_Next_Lo] <= 0 - : Attributes[GameAttribute.Experience_Next_Lo] <= 0) + while (Attributes[GameAttributes.Level] >= Attributes[GameAttributes.Level_Cap] + ? Attributes[GameAttributes.Alt_Experience_Next_Lo] <= 0 + : Attributes[GameAttributes.Experience_Next_Lo] <= 0) { // No more levelup at Level_Cap - if (Attributes[GameAttribute.Level] >= Attributes[GameAttribute.Level_Cap]) + if (Attributes[GameAttributes.Level] >= Attributes[GameAttributes.Level_Cap]) { ParagonLevel++; Toon.ParagonLevelUp(); ParagonLevelUp(); - Attributes[GameAttribute.Alt_Level]++; + Attributes[GameAttributes.Alt_Level]++; InGameClient.SendMessage(new ParagonLevel() { PlayerIndex = PlayerIndex, @@ -5137,18 +5132,18 @@ public class Player : Actor, IMessageConsumer, IUpdateable }); Conversations.StartConversation(0x0002A777); //LevelUp Conversation - Attributes[GameAttribute.Alt_Experience_Next_Lo] += (int)ParagonLevelBorders[Attributes[GameAttribute.Alt_Level]]; + Attributes[GameAttributes.Alt_Experience_Next_Lo] += (int)ParagonLevelBorders[Attributes[GameAttributes.Alt_Level]]; // On level up, health is set to max - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; // set resources to max as well - Attributes[GameAttribute.Resource_Cur, Attributes[GameAttribute.Resource_Type_Primary] - 1] = - Attributes[GameAttribute.Resource_Max_Total, - Attributes[GameAttribute.Resource_Type_Primary] - 1]; - Attributes[GameAttribute.Resource_Cur, Attributes[GameAttribute.Resource_Type_Secondary] - 1] = - Attributes[GameAttribute.Resource_Max_Total, - Attributes[GameAttribute.Resource_Type_Secondary] - 1]; + Attributes[GameAttributes.Resource_Cur, Attributes[GameAttributes.Resource_Type_Primary] - 1] = + Attributes[GameAttributes.Resource_Max_Total, + Attributes[GameAttributes.Resource_Type_Primary] - 1]; + Attributes[GameAttributes.Resource_Cur, Attributes[GameAttributes.Resource_Type_Secondary] - 1] = + Attributes[GameAttributes.Resource_Max_Total, + Attributes[GameAttributes.Resource_Type_Secondary] - 1]; - ExperienceNext = Attributes[GameAttribute.Alt_Experience_Next_Lo]; + ExperienceNext = Attributes[GameAttributes.Alt_Experience_Next_Lo]; Attributes.BroadcastChangedIfRevealed(); PlayEffect(Effect.ParagonLevelUp, null, false); @@ -5157,10 +5152,10 @@ public class Player : Actor, IMessageConsumer, IUpdateable } Level++; - Attributes[GameAttribute.Level]++; + Attributes[GameAttributes.Level]++; Toon.LevelUp(); - if (World.Game.MonsterLevel + 1 == Attributes[GameAttribute.Level]) //if this is suitable level to update - World.Game.UpdateLevel(Attributes[GameAttribute.Level]); + if (World.Game.MonsterLevel + 1 == Attributes[GameAttributes.Level]) //if this is suitable level to update + World.Game.UpdateLevel(Attributes[GameAttributes.Level]); InGameClient.SendMessage(new PlayerLevel() { @@ -5220,39 +5215,39 @@ public class Player : Actor, IMessageConsumer, IUpdateable Conversations.StartConversation(0x0002A777); //LevelUp Conversation - if (Attributes[GameAttribute.Level] >= Attributes[GameAttribute.Level_Cap]) + if (Attributes[GameAttributes.Level] >= Attributes[GameAttributes.Level_Cap]) { - Attributes[GameAttribute.Alt_Experience_Next_Lo] = (int)ParagonLevelBorders[Toon.ParagonLevel]; + Attributes[GameAttributes.Alt_Experience_Next_Lo] = (int)ParagonLevelBorders[Toon.ParagonLevel]; Toon.ExperienceNext = (int)ParagonLevelBorders[Toon.ParagonLevel]; } else { - Attributes[GameAttribute.Experience_Next_Lo] += (int)LevelBorders[Attributes[GameAttribute.Level]]; - Toon.ExperienceNext = Attributes[GameAttribute.Experience_Next_Lo]; + Attributes[GameAttributes.Experience_Next_Lo] += (int)LevelBorders[Attributes[GameAttributes.Level]]; + Toon.ExperienceNext = Attributes[GameAttributes.Experience_Next_Lo]; } // 4 main attributes are incremented according to class - Attributes[GameAttribute.Strength] = Strength; - Attributes[GameAttribute.Intelligence] = Intelligence; - Attributes[GameAttribute.Vitality] = Vitality; - Attributes[GameAttribute.Dexterity] = Dexterity; + Attributes[GameAttributes.Strength] = Strength; + Attributes[GameAttributes.Intelligence] = Intelligence; + Attributes[GameAttributes.Vitality] = Vitality; + Attributes[GameAttributes.Dexterity] = Dexterity; // On level up, health is set to max - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; // force GameAttributeMap to re-calc resources for the active resource types - Attributes[GameAttribute.Resource_Max, Attributes[GameAttribute.Resource_Type_Primary] - 1] = - Attributes[GameAttribute.Resource_Max, Attributes[GameAttribute.Resource_Type_Primary] - 1]; - Attributes[GameAttribute.Resource_Max, Attributes[GameAttribute.Resource_Type_Secondary] - 1] = - Attributes[GameAttribute.Resource_Max, Attributes[GameAttribute.Resource_Type_Secondary] - 1]; + Attributes[GameAttributes.Resource_Max, Attributes[GameAttributes.Resource_Type_Primary] - 1] = + Attributes[GameAttributes.Resource_Max, Attributes[GameAttributes.Resource_Type_Primary] - 1]; + Attributes[GameAttributes.Resource_Max, Attributes[GameAttributes.Resource_Type_Secondary] - 1] = + Attributes[GameAttributes.Resource_Max, Attributes[GameAttributes.Resource_Type_Secondary] - 1]; // set resources to max as well - Attributes[GameAttribute.Resource_Cur, Attributes[GameAttribute.Resource_Type_Primary] - 1] = - Attributes[GameAttribute.Resource_Max_Total, Attributes[GameAttribute.Resource_Type_Primary] - 1]; - Attributes[GameAttribute.Resource_Cur, Attributes[GameAttribute.Resource_Type_Secondary] - 1] = - Attributes[GameAttribute.Resource_Max_Total, Attributes[GameAttribute.Resource_Type_Secondary] - 1]; + Attributes[GameAttributes.Resource_Cur, Attributes[GameAttributes.Resource_Type_Primary] - 1] = + Attributes[GameAttributes.Resource_Max_Total, Attributes[GameAttributes.Resource_Type_Primary] - 1]; + Attributes[GameAttributes.Resource_Cur, Attributes[GameAttributes.Resource_Type_Secondary] - 1] = + Attributes[GameAttributes.Resource_Max_Total, Attributes[GameAttributes.Resource_Type_Secondary] - 1]; - Attributes[GameAttribute.Hitpoints_Factor_Vitality] = 10f + Math.Max(Level - 35, 0); + Attributes[GameAttributes.Hitpoints_Factor_Vitality] = 10f + Math.Max(Level - 35, 0); Attributes.BroadcastChangedIfRevealed(); @@ -5303,9 +5298,9 @@ public class Player : Actor, IMessageConsumer, IUpdateable } } - ExperienceNext = Attributes[GameAttribute.Level] == 70 - ? Attributes[GameAttribute.Alt_Experience_Next_Lo] - : Attributes[GameAttribute.Experience_Next_Lo]; + ExperienceNext = Attributes[GameAttributes.Level] == 70 + ? Attributes[GameAttributes.Alt_Experience_Next_Lo] + : Attributes[GameAttributes.Experience_Next_Lo]; Attributes.BroadcastChangedIfRevealed(); Toon.GameAccount.NotifyUpdate(); @@ -5320,7 +5315,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void VacuumPickupHealthOrb(float radius = -1) { if (Math.Abs(radius - -1) < Globals.FLOAT_TOLERANCE) - radius = Attributes[GameAttribute.Gold_PickUp_Radius]; + radius = Attributes[GameAttributes.Gold_PickUp_Radius]; var itemList = GetItemsInRange(radius); foreach (var item in itemList) if (Item.IsHealthGlobe(item.ItemType)) @@ -5336,19 +5331,19 @@ public class Player : Actor, IMessageConsumer, IUpdateable }); //every summon and mercenary owned by you must broadcast their green text to you /H_DANILO - player.AddPercentageHP((int)item.Attributes[GameAttribute.Health_Globe_Bonus_Health]); + player.AddPercentageHP((int)item.Attributes[GameAttributes.Health_Globe_Bonus_Health]); //passive abilities if (player.SkillSet.HasPassive(208478)) //wizard PowerHungry player.World.BuffManager.AddBuff(this, this, new HungryBuff()); if (player.SkillSet.HasPassive(208594)) //wd GruesomeFeast { - player.GeneratePrimaryResource(player.Attributes[GameAttribute.Resource_Max_Total, + player.GeneratePrimaryResource(player.Attributes[GameAttributes.Resource_Max_Total, (int)player.Toon.HeroTable.PrimaryResource + 1] * 0.1f); player.World.BuffManager.AddBuff(player, player, new GruesomeFeastIntBuff()); } if (player.SkillSet.HasPassive(205205)) //barbarian PoundOfFlesh - player.AddPercentageHP((int)(item.Attributes[GameAttribute.Health_Globe_Bonus_Health] * 0.5f)); + player.AddPercentageHP((int)(item.Attributes[GameAttributes.Health_Globe_Bonus_Health] * 0.5f)); if (player.SkillSet.HasPassive(155714)) //dh Vengeance { player.GeneratePrimaryResource(20f); @@ -5362,7 +5357,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void VacuumPickup() { - var itemList = GetItemsInRange(Attributes[GameAttribute.Gold_PickUp_Radius]); + var itemList = GetItemsInRange(Attributes[GameAttributes.Gold_PickUp_Radius]); foreach (var item in itemList) if (Item.IsGold(item.ItemType)) { @@ -5376,7 +5371,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable WorldID = World.DynamicID(this) }, - Amount = item.Attributes[GameAttribute.Gold], + Amount = item.Attributes[GameAttributes.Gold], Type = FloatingAmountMessage.FloatType.Gold }); InGameClient.SendMessage(new PlayEffectMessage() @@ -5403,7 +5398,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable WorldID = World.DynamicID(this) }, - Amount = item.Attributes[GameAttribute.ItemStackQuantityLo], + Amount = item.Attributes[GameAttributes.ItemStackQuantityLo], Type = FloatingAmountMessage.FloatType.BloodStone }); @@ -5422,7 +5417,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable WorldID = World.DynamicID(this) }, - Amount = item.Attributes[GameAttribute.ItemStackQuantityLo], + Amount = item.Attributes[GameAttributes.ItemStackQuantityLo], Type = FloatingAmountMessage.FloatType.Platinum }); PlayEffect(Effect.Sound, 433266); @@ -5465,19 +5460,19 @@ public class Player : Actor, IMessageConsumer, IUpdateable }); //every summon and mercenary owned by you must broadcast their green text to you /H_DANILO - player.AddPercentageHP((int)item.Attributes[GameAttribute.Health_Globe_Bonus_Health]); + player.AddPercentageHP((int)item.Attributes[GameAttributes.Health_Globe_Bonus_Health]); //passive abilities if (player.SkillSet.HasPassive(208478)) //wizard PowerHungry player.World.BuffManager.AddBuff(this, this, new HungryBuff()); if (player.SkillSet.HasPassive(208594)) //wd GruesomeFeast { - player.GeneratePrimaryResource(player.Attributes[GameAttribute.Resource_Max_Total, + player.GeneratePrimaryResource(player.Attributes[GameAttributes.Resource_Max_Total, (int)player.Toon.HeroTable.PrimaryResource + 1] * 0.1f); player.World.BuffManager.AddBuff(player, player, new GruesomeFeastIntBuff()); } if (player.SkillSet.HasPassive(205205)) //barbarian PoundOfFlesh - player.AddPercentageHP((int)(item.Attributes[GameAttribute.Health_Globe_Bonus_Health] * 0.5f)); + player.AddPercentageHP((int)(item.Attributes[GameAttributes.Health_Globe_Bonus_Health] * 0.5f)); if (player.SkillSet.HasPassive(155714)) //dh Vengeance { player.GeneratePrimaryResource(20f); @@ -5602,7 +5597,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable //Play Aura - 472217 //this.PlayEffectGroup(472217); var Fleshes = - GetActorsInRange(15f + Attributes[GameAttribute.Gold_PickUp_Radius] * + GetActorsInRange(15f + Attributes[GameAttributes.Gold_PickUp_Radius] * 0.5f); //454066 foreach (var flesh in Fleshes) { @@ -5613,7 +5608,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable ActorID = flesh.DynamicID(this) }); flesh.PlayEffectGroup(470482); - Attributes[GameAttribute.Resource_Cur, (int)Toon.HeroTable.PrimaryResource] += 11f; + Attributes[GameAttributes.Resource_Cur, (int)Toon.HeroTable.PrimaryResource] += 11f; Attributes.BroadcastChangedIfRevealed(); flesh.Destroy(); } @@ -5623,8 +5618,8 @@ public class Player : Actor, IMessageConsumer, IUpdateable public Actor SpawnNephalemBoss(World world) { var boss = world.SpawnMonster(ActorSnoExtensions.NephalemPortalBosses.PickRandom(), Position); - boss.Attributes[GameAttribute.Bounty_Objective] = true; - boss.Attributes[GameAttribute.Is_Loot_Run_Boss] = true; + boss.Attributes[GameAttributes.Bounty_Objective] = true; + boss.Attributes[GameAttributes.Is_Loot_Run_Boss] = true; boss.Attributes.BroadcastChangedIfRevealed(); foreach (var plr in world.Players.Values) @@ -5652,13 +5647,13 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void AddPercentageHP(int percentage, bool guidingLight = false) { - var quantity = percentage * Attributes[GameAttribute.Hitpoints_Max_Total] / 100; + var quantity = percentage * Attributes[GameAttributes.Hitpoints_Max_Total] / 100; AddHP(quantity, guidingLight); } public void AddPercentageHP(float percentage, bool guidingLight = false) { - var quantity = percentage * Attributes[GameAttribute.Hitpoints_Max_Total] / 100; + var quantity = percentage * Attributes[GameAttributes.Hitpoints_Max_Total] / 100; AddHP(quantity, guidingLight); } @@ -5671,17 +5666,17 @@ public class Player : Actor, IMessageConsumer, IUpdateable return; case > 0: { - if (Attributes[GameAttribute.Hitpoints_Cur] < Attributes[GameAttribute.Hitpoints_Max_Total]) + if (Attributes[GameAttributes.Hitpoints_Cur] < Attributes[GameAttributes.Hitpoints_Max_Total]) { if (Toon.Class == ToonClass.Barbarian) if (SkillSet.HasPassive(205217)) - quantity += 0.01f * Attributes[GameAttribute.Health_Globe_Bonus_Health]; + quantity += 0.01f * Attributes[GameAttributes.Health_Globe_Bonus_Health]; if (guidingLight) //Monk -> Guiding Light { var missingHP = - (Attributes[GameAttribute.Hitpoints_Max_Total] - Attributes[GameAttribute.Hitpoints_Cur]) / - Attributes[GameAttribute.Hitpoints_Max_Total]; + (Attributes[GameAttributes.Hitpoints_Max_Total] - Attributes[GameAttributes.Hitpoints_Cur]) / + Attributes[GameAttributes.Hitpoints_Max_Total]; if (missingHP > 0.05f) if (!World.BuffManager.HasBuff(this)) World.BuffManager.AddBuff(this, this, @@ -5689,9 +5684,9 @@ public class Player : Actor, IMessageConsumer, IUpdateable TickTimer.WaitSeconds(World.Game, 10.0f))); } - Attributes[GameAttribute.Hitpoints_Cur] = Math.Min( - Attributes[GameAttribute.Hitpoints_Cur] + quantity, - Attributes[GameAttribute.Hitpoints_Max_Total]); + Attributes[GameAttributes.Hitpoints_Cur] = Math.Min( + Attributes[GameAttributes.Hitpoints_Cur] + quantity, + Attributes[GameAttributes.Hitpoints_Max_Total]); Attributes.BroadcastChangedIfRevealed(); InGameClient.SendMessage(new FloatingNumberMessage @@ -5705,8 +5700,8 @@ public class Player : Actor, IMessageConsumer, IUpdateable break; } default: - Attributes[GameAttribute.Hitpoints_Cur] = Math.Max( - Attributes[GameAttribute.Hitpoints_Cur] + quantity, + Attributes[GameAttributes.Hitpoints_Cur] = Math.Max( + Attributes[GameAttributes.Hitpoints_Cur] + quantity, 0); Attributes.BroadcastChangedIfRevealed(); @@ -5717,10 +5712,10 @@ public class Player : Actor, IMessageConsumer, IUpdateable //only for WD passive public void RestoreMana(float quantity, int secs) { - Attributes[GameAttribute.Resource_Regen_Per_Second, 0] += quantity / secs; + Attributes[GameAttributes.Resource_Regen_Per_Second, 0] += quantity / secs; System.Threading.Tasks.Task.Delay(1000 * secs).ContinueWith(t => { - Attributes[GameAttribute.Resource_Regen_Per_Second, 0] -= quantity / secs; + Attributes[GameAttributes.Resource_Regen_Per_Second, 0] -= quantity / secs; }); } @@ -5748,20 +5743,20 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void UsePrimaryResource(float amount, bool tick = false) { amount = Math.Max( - (amount - Attributes[GameAttribute.Resource_Cost_Reduction_Amount]) * (1f - - Attributes[GameAttribute.Resource_Cost_Reduction_Percent_Total, + (amount - Attributes[GameAttributes.Resource_Cost_Reduction_Amount]) * (1f - + Attributes[GameAttributes.Resource_Cost_Reduction_Percent_Total, (int)Toon.HeroTable.PrimaryResource + 1]), 0); amount = amount * (1f - DecreaseUseResourcePercent); if (Toon.Class == ToonClass.Crusader) { _wrathSpent += (int)amount; if (!tick && SkillSet.HasPassive(310775)) //Wrathful passive - AddHP(_wrathSpent * 15f * Attributes[GameAttribute.Level]); + AddHP(_wrathSpent * 15f * Attributes[GameAttributes.Level]); //Laws of Hope -> Faith's reward if (!tick && World.BuffManager.HasBuff(this)) if (World.BuffManager.GetFirstBuff(this).HealPerWrath) - AddHP(_wrathSpent * 15f * Attributes[GameAttribute.Level]); + AddHP(_wrathSpent * 15f * Attributes[GameAttributes.Level]); if (_wrathSpent >= 20) //Akarat Champion -> Fire Starter if (!tick && World.BuffManager.HasBuff(this)) @@ -5781,11 +5776,11 @@ public class Player : Actor, IMessageConsumer, IUpdateable if (Toon.Class == ToonClass.Barbarian) { if (SkillSet.HasPassive(105217) && !tick) //Bloodthirst (Burb) - AddHP(amount * 1.93f * Attributes[GameAttribute.Level]); + AddHP(amount * 1.93f * Attributes[GameAttributes.Level]); if (!tick && World.BuffManager.HasBuff(this)) - if (Attributes[GameAttribute.Rune_E, 79528] > 0) //IgnorePain - AddHP(amount * 13.76f * Attributes[GameAttribute.Level]); + if (Attributes[GameAttributes.Rune_E, 79528] > 0) //IgnorePain + AddHP(amount * 13.76f * Attributes[GameAttributes.Level]); } if (Toon.Class == ToonClass.Wizard) @@ -5797,7 +5792,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable if (Toon.Class == ToonClass.Monk) if (SkillSet.HasPassive(209250)) //Transcendence (Monk) - AddHP(amount * (50f + Attributes[GameAttribute.Health_Globe_Bonus_Health] * 0.004f)); + AddHP(amount * (50f + Attributes[GameAttributes.Health_Globe_Bonus_Health] * 0.004f)); if (SkillSet.HasPassive(208628)) //PierceTheVeil (WD) amount *= 1.3f; @@ -5807,8 +5802,8 @@ public class Player : Actor, IMessageConsumer, IUpdateable AddHP(amount * -0.1f); } - if (SkillSet.HasPassive(205398) && Attributes[GameAttribute.Hitpoints_Cur] < - Attributes[GameAttribute.Hitpoints_Max_Total] * 0.35f) //Relentless (Barbarian) + if (SkillSet.HasPassive(205398) && Attributes[GameAttributes.Hitpoints_Cur] < + Attributes[GameAttributes.Hitpoints_Max_Total] * 0.35f) //Relentless (Barbarian) amount *= 0.25f; ModifyResourceAttribute(PrimaryResourceID, -amount); } @@ -5821,8 +5816,8 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void UseSecondaryResource(float amount) { amount = Math.Max( - (amount - Attributes[GameAttribute.Resource_Cost_Reduction_Amount]) * (1f - - Attributes[GameAttribute.Resource_Cost_Reduction_Percent_Total, (int)Toon.HeroTable.SecondaryResource]), + (amount - Attributes[GameAttributes.Resource_Cost_Reduction_Amount]) * (1f - + Attributes[GameAttributes.Resource_Cost_Reduction_Percent_Total, (int)Toon.HeroTable.SecondaryResource]), 0); if (SkillSet.HasPassive(155722)) //dh - Perfectionist @@ -5844,17 +5839,17 @@ public class Player : Actor, IMessageConsumer, IUpdateable private void ModifyResourceAttribute(int resourceID, float amount) { if (resourceID == -1 || amount == 0) return; - var current = Attributes[GameAttribute.Resource_Cur, resourceID]; + var current = Attributes[GameAttributes.Resource_Cur, resourceID]; if (amount > 0f) - Attributes[GameAttribute.Resource_Cur, resourceID] = Math.Min( - Attributes[GameAttribute.Resource_Cur, resourceID] + amount, - Attributes[GameAttribute.Resource_Max_Total, resourceID]); + Attributes[GameAttributes.Resource_Cur, resourceID] = Math.Min( + Attributes[GameAttributes.Resource_Cur, resourceID] + amount, + Attributes[GameAttributes.Resource_Max_Total, resourceID]); else - Attributes[GameAttribute.Resource_Cur, resourceID] = Math.Max( - Attributes[GameAttribute.Resource_Cur, resourceID] + amount, + Attributes[GameAttributes.Resource_Cur, resourceID] = Math.Max( + Attributes[GameAttributes.Resource_Cur, resourceID] + amount, 0f); - if (Math.Abs(current - Attributes[GameAttribute.Resource_Cur, resourceID]) < Globals.FLOAT_TOLERANCE) return; + if (Math.Abs(current - Attributes[GameAttributes.Resource_Cur, resourceID]) < Globals.FLOAT_TOLERANCE) return; Attributes.BroadcastChangedIfRevealed(); } @@ -5877,7 +5872,7 @@ public class Player : Actor, IMessageConsumer, IUpdateable if (Toon.Class == ToonClass.Barbarian) { - if (Attributes[GameAttribute.Resource_Cur, 2] < Attributes[GameAttribute.Resource_Max_Total, 2]) + if (Attributes[GameAttributes.Resource_Cur, 2] < Attributes[GameAttributes.Resource_Max_Total, 2]) _fullFuryFirstTick = InGameClient.Game.TickCounter; if (InGameClient.Game.TickCounter - _fullFuryFirstTick >= 18000) @@ -5900,15 +5895,15 @@ public class Player : Actor, IMessageConsumer, IUpdateable _lastResourceUpdateTick = InGameClient.Game.TickCounter; GeneratePrimaryResource(Math.Max( - tickSeconds * Attributes[GameAttribute.Resource_Regen_Total, - Attributes[GameAttribute.Resource_Type_Primary] - 1], 0)); + tickSeconds * Attributes[GameAttributes.Resource_Regen_Total, + Attributes[GameAttributes.Resource_Type_Primary] - 1], 0)); GenerateSecondaryResource(Math.Max( - tickSeconds * Attributes[GameAttribute.Resource_Regen_Total, - Attributes[GameAttribute.Resource_Type_Secondary] - 1], 0)); + tickSeconds * Attributes[GameAttributes.Resource_Regen_Total, + Attributes[GameAttributes.Resource_Type_Secondary] - 1], 0)); var totalHPregen = //(this.Attributes[GameAttribute.Hitpoints_Regen_Per_Second] + - Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] //) - * (1 + Attributes[GameAttribute.Hitpoints_Regen_Bonus_Percent]); + Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] //) + * (1 + Attributes[GameAttributes.Hitpoints_Regen_Bonus_Percent]); if (!Dead && !World.Game.PvP) AddHP(Math.Max(tickSeconds * totalHPregen, 0)); if (Toon.Class == ToonClass.Barbarian) @@ -5978,13 +5973,13 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void EnableStoneOfRecall() { - Attributes[GameAttribute.Skill, 0x0002EC66] = 1; + Attributes[GameAttributes.Skill, 0x0002EC66] = 1; Attributes.SendChangedMessage(InGameClient); } public void DisableStoneOfRecall() { - Attributes[GameAttribute.Skill, 0x0002EC66] = 0; + Attributes[GameAttributes.Skill, 0x0002EC66] = 0; Attributes.SendChangedMessage(InGameClient); } @@ -6002,18 +5997,18 @@ public class Player : Actor, IMessageConsumer, IUpdateable minion.Brain.DeActivate(); minion.WalkSpeed *= 4; minion.Position = Position; - minion.Attributes[GameAttribute.TeamID] = Attributes[GameAttribute.TeamID]; - minion.Attributes[GameAttribute.Untargetable] = true; - minion.Attributes[GameAttribute.No_Damage] = true; - minion.Attributes[GameAttribute.Invulnerable] = true; - minion.Attributes[GameAttribute.TeamID] = 2; - minion.Attributes[GameAttribute.NPC_Is_Escorting] = true; - minion.Attributes[GameAttribute.Pet_Creator] = 1; - minion.Attributes[GameAttribute.Pet_Owner] = 1; - minion.Attributes[GameAttribute.Pet_Type] = 25; + minion.Attributes[GameAttributes.TeamID] = Attributes[GameAttributes.TeamID]; + minion.Attributes[GameAttributes.Untargetable] = true; + minion.Attributes[GameAttributes.No_Damage] = true; + minion.Attributes[GameAttributes.Invulnerable] = true; + minion.Attributes[GameAttributes.TeamID] = 2; + minion.Attributes[GameAttributes.NPC_Is_Escorting] = true; + minion.Attributes[GameAttributes.Pet_Creator] = 1; + minion.Attributes[GameAttributes.Pet_Owner] = 1; + minion.Attributes[GameAttributes.Pet_Type] = 25; //*/ - minion.Attributes[GameAttribute.Effect_Owner_ANN] = (int)DynamicID(this); + minion.Attributes[GameAttributes.Effect_Owner_ANN] = (int)DynamicID(this); minion.EnterWorld(minion.Position); (minion as Minion).Brain.Activate(); @@ -6111,8 +6106,8 @@ public class Player : Actor, IMessageConsumer, IUpdateable public void Heal() { - Attributes[GameAttribute.Hitpoints_Cur] = Attributes[GameAttribute.Hitpoints_Max_Total]; - Attributes[GameAttribute.Hitpoints_Total_From_Level] = Attributes[GameAttribute.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Cur] = Attributes[GameAttributes.Hitpoints_Max_Total]; + Attributes[GameAttributes.Hitpoints_Total_From_Level] = Attributes[GameAttributes.Hitpoints_Max_Total]; Attributes.BroadcastChangedIfRevealed(); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/BaseBuffs.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/BaseBuffs.cs index d3e3a37..d9da338 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/BaseBuffs.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/BaseBuffs.cs @@ -1,11 +1,6 @@ using DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem @@ -18,7 +13,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem { if (PowerSNO != 0) { - Target.Attributes[GameAttribute.Buff_Exclusive_Type_Active, PowerSNO] = true; + Target.Attributes[GameAttributes.Buff_Exclusive_Type_Active, PowerSNO] = true; Target.Attributes.BroadcastChangedIfRevealed(); } return true; @@ -28,7 +23,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem { if (PowerSNO != 0) { - Target.Attributes[GameAttribute.Buff_Exclusive_Type_Active, PowerSNO] = false; + Target.Attributes[GameAttributes.Buff_Exclusive_Type_Active, PowerSNO] = false; Target.Attributes.BroadcastChangedIfRevealed(); } Removed = true; @@ -187,8 +182,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem Timeout.TimeoutTick -= ticks; if (this is CooldownBuff) { - Target.Attributes[GameAttribute.Power_Cooldown_Start, (this as CooldownBuff).TargetPowerSNO] -= ticks; - Target.Attributes[GameAttribute.Power_Cooldown, (this as CooldownBuff).TargetPowerSNO] = Timeout.TimeoutTick; + Target.Attributes[GameAttributes.Power_Cooldown_Start, (this as CooldownBuff).TargetPowerSNO] -= ticks; + Target.Attributes[GameAttributes.Power_Cooldown, (this as CooldownBuff).TargetPowerSNO] = Timeout.TimeoutTick; } Target.Attributes[_Buff_Icon_End_TickN, PowerSNO] = Timeout.TimeoutTick; Target.Attributes.BroadcastChangedIfRevealed(); @@ -202,229 +197,229 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem { default: case 0: - return RuneSelect(GameAttribute.Power_Buff_0_Visual_Effect_None, - GameAttribute.Power_Buff_0_Visual_Effect_A, - GameAttribute.Power_Buff_0_Visual_Effect_B, - GameAttribute.Power_Buff_0_Visual_Effect_C, - GameAttribute.Power_Buff_0_Visual_Effect_D, - GameAttribute.Power_Buff_0_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_0_Visual_Effect_None, + GameAttributes.Power_Buff_0_Visual_Effect_A, + GameAttributes.Power_Buff_0_Visual_Effect_B, + GameAttributes.Power_Buff_0_Visual_Effect_C, + GameAttributes.Power_Buff_0_Visual_Effect_D, + GameAttributes.Power_Buff_0_Visual_Effect_E); case 1: - return RuneSelect(GameAttribute.Power_Buff_1_Visual_Effect_None, - GameAttribute.Power_Buff_1_Visual_Effect_A, - GameAttribute.Power_Buff_1_Visual_Effect_B, - GameAttribute.Power_Buff_1_Visual_Effect_C, - GameAttribute.Power_Buff_1_Visual_Effect_D, - GameAttribute.Power_Buff_1_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_1_Visual_Effect_None, + GameAttributes.Power_Buff_1_Visual_Effect_A, + GameAttributes.Power_Buff_1_Visual_Effect_B, + GameAttributes.Power_Buff_1_Visual_Effect_C, + GameAttributes.Power_Buff_1_Visual_Effect_D, + GameAttributes.Power_Buff_1_Visual_Effect_E); case 2: - return RuneSelect(GameAttribute.Power_Buff_2_Visual_Effect_None, - GameAttribute.Power_Buff_2_Visual_Effect_A, - GameAttribute.Power_Buff_2_Visual_Effect_B, - GameAttribute.Power_Buff_2_Visual_Effect_C, - GameAttribute.Power_Buff_2_Visual_Effect_D, - GameAttribute.Power_Buff_2_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_2_Visual_Effect_None, + GameAttributes.Power_Buff_2_Visual_Effect_A, + GameAttributes.Power_Buff_2_Visual_Effect_B, + GameAttributes.Power_Buff_2_Visual_Effect_C, + GameAttributes.Power_Buff_2_Visual_Effect_D, + GameAttributes.Power_Buff_2_Visual_Effect_E); case 3: - return RuneSelect(GameAttribute.Power_Buff_3_Visual_Effect_None, - GameAttribute.Power_Buff_3_Visual_Effect_A, - GameAttribute.Power_Buff_3_Visual_Effect_B, - GameAttribute.Power_Buff_3_Visual_Effect_C, - GameAttribute.Power_Buff_3_Visual_Effect_D, - GameAttribute.Power_Buff_3_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_3_Visual_Effect_None, + GameAttributes.Power_Buff_3_Visual_Effect_A, + GameAttributes.Power_Buff_3_Visual_Effect_B, + GameAttributes.Power_Buff_3_Visual_Effect_C, + GameAttributes.Power_Buff_3_Visual_Effect_D, + GameAttributes.Power_Buff_3_Visual_Effect_E); case 4: - return RuneSelect(GameAttribute.Power_Buff_4_Visual_Effect_None, - GameAttribute.Power_Buff_4_Visual_Effect_A, - GameAttribute.Power_Buff_4_Visual_Effect_B, - GameAttribute.Power_Buff_4_Visual_Effect_C, - GameAttribute.Power_Buff_4_Visual_Effect_D, - GameAttribute.Power_Buff_4_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_4_Visual_Effect_None, + GameAttributes.Power_Buff_4_Visual_Effect_A, + GameAttributes.Power_Buff_4_Visual_Effect_B, + GameAttributes.Power_Buff_4_Visual_Effect_C, + GameAttributes.Power_Buff_4_Visual_Effect_D, + GameAttributes.Power_Buff_4_Visual_Effect_E); case 5: - return RuneSelect(GameAttribute.Power_Buff_5_Visual_Effect_None, - GameAttribute.Power_Buff_5_Visual_Effect_A, - GameAttribute.Power_Buff_5_Visual_Effect_B, - GameAttribute.Power_Buff_5_Visual_Effect_C, - GameAttribute.Power_Buff_5_Visual_Effect_D, - GameAttribute.Power_Buff_5_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_5_Visual_Effect_None, + GameAttributes.Power_Buff_5_Visual_Effect_A, + GameAttributes.Power_Buff_5_Visual_Effect_B, + GameAttributes.Power_Buff_5_Visual_Effect_C, + GameAttributes.Power_Buff_5_Visual_Effect_D, + GameAttributes.Power_Buff_5_Visual_Effect_E); case 6: - return RuneSelect(GameAttribute.Power_Buff_6_Visual_Effect_None, - GameAttribute.Power_Buff_6_Visual_Effect_A, - GameAttribute.Power_Buff_6_Visual_Effect_B, - GameAttribute.Power_Buff_6_Visual_Effect_C, - GameAttribute.Power_Buff_6_Visual_Effect_D, - GameAttribute.Power_Buff_6_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_6_Visual_Effect_None, + GameAttributes.Power_Buff_6_Visual_Effect_A, + GameAttributes.Power_Buff_6_Visual_Effect_B, + GameAttributes.Power_Buff_6_Visual_Effect_C, + GameAttributes.Power_Buff_6_Visual_Effect_D, + GameAttributes.Power_Buff_6_Visual_Effect_E); case 7: - return RuneSelect(GameAttribute.Power_Buff_7_Visual_Effect_None, - GameAttribute.Power_Buff_7_Visual_Effect_A, - GameAttribute.Power_Buff_7_Visual_Effect_B, - GameAttribute.Power_Buff_7_Visual_Effect_C, - GameAttribute.Power_Buff_7_Visual_Effect_D, - GameAttribute.Power_Buff_7_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_7_Visual_Effect_None, + GameAttributes.Power_Buff_7_Visual_Effect_A, + GameAttributes.Power_Buff_7_Visual_Effect_B, + GameAttributes.Power_Buff_7_Visual_Effect_C, + GameAttributes.Power_Buff_7_Visual_Effect_D, + GameAttributes.Power_Buff_7_Visual_Effect_E); case 8: - return RuneSelect(GameAttribute.Power_Buff_8_Visual_Effect_None, - GameAttribute.Power_Buff_8_Visual_Effect_A, - GameAttribute.Power_Buff_8_Visual_Effect_B, - GameAttribute.Power_Buff_8_Visual_Effect_C, - GameAttribute.Power_Buff_8_Visual_Effect_D, - GameAttribute.Power_Buff_8_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_8_Visual_Effect_None, + GameAttributes.Power_Buff_8_Visual_Effect_A, + GameAttributes.Power_Buff_8_Visual_Effect_B, + GameAttributes.Power_Buff_8_Visual_Effect_C, + GameAttributes.Power_Buff_8_Visual_Effect_D, + GameAttributes.Power_Buff_8_Visual_Effect_E); case 9: - return RuneSelect(GameAttribute.Power_Buff_9_Visual_Effect_None, - GameAttribute.Power_Buff_9_Visual_Effect_A, - GameAttribute.Power_Buff_9_Visual_Effect_B, - GameAttribute.Power_Buff_9_Visual_Effect_C, - GameAttribute.Power_Buff_9_Visual_Effect_D, - GameAttribute.Power_Buff_9_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_9_Visual_Effect_None, + GameAttributes.Power_Buff_9_Visual_Effect_A, + GameAttributes.Power_Buff_9_Visual_Effect_B, + GameAttributes.Power_Buff_9_Visual_Effect_C, + GameAttributes.Power_Buff_9_Visual_Effect_D, + GameAttributes.Power_Buff_9_Visual_Effect_E); case 10: - return RuneSelect(GameAttribute.Power_Buff_10_Visual_Effect_None, - GameAttribute.Power_Buff_10_Visual_Effect_A, - GameAttribute.Power_Buff_10_Visual_Effect_B, - GameAttribute.Power_Buff_10_Visual_Effect_C, - GameAttribute.Power_Buff_10_Visual_Effect_D, - GameAttribute.Power_Buff_10_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_10_Visual_Effect_None, + GameAttributes.Power_Buff_10_Visual_Effect_A, + GameAttributes.Power_Buff_10_Visual_Effect_B, + GameAttributes.Power_Buff_10_Visual_Effect_C, + GameAttributes.Power_Buff_10_Visual_Effect_D, + GameAttributes.Power_Buff_10_Visual_Effect_E); case 11: - return RuneSelect(GameAttribute.Power_Buff_11_Visual_Effect_None, - GameAttribute.Power_Buff_11_Visual_Effect_A, - GameAttribute.Power_Buff_11_Visual_Effect_B, - GameAttribute.Power_Buff_11_Visual_Effect_C, - GameAttribute.Power_Buff_11_Visual_Effect_D, - GameAttribute.Power_Buff_11_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_11_Visual_Effect_None, + GameAttributes.Power_Buff_11_Visual_Effect_A, + GameAttributes.Power_Buff_11_Visual_Effect_B, + GameAttributes.Power_Buff_11_Visual_Effect_C, + GameAttributes.Power_Buff_11_Visual_Effect_D, + GameAttributes.Power_Buff_11_Visual_Effect_E); case 12: - return RuneSelect(GameAttribute.Power_Buff_12_Visual_Effect_None, - GameAttribute.Power_Buff_12_Visual_Effect_A, - GameAttribute.Power_Buff_12_Visual_Effect_B, - GameAttribute.Power_Buff_12_Visual_Effect_C, - GameAttribute.Power_Buff_12_Visual_Effect_D, - GameAttribute.Power_Buff_12_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_12_Visual_Effect_None, + GameAttributes.Power_Buff_12_Visual_Effect_A, + GameAttributes.Power_Buff_12_Visual_Effect_B, + GameAttributes.Power_Buff_12_Visual_Effect_C, + GameAttributes.Power_Buff_12_Visual_Effect_D, + GameAttributes.Power_Buff_12_Visual_Effect_E); case 13: - return RuneSelect(GameAttribute.Power_Buff_13_Visual_Effect_None, - GameAttribute.Power_Buff_13_Visual_Effect_A, - GameAttribute.Power_Buff_13_Visual_Effect_B, - GameAttribute.Power_Buff_13_Visual_Effect_C, - GameAttribute.Power_Buff_13_Visual_Effect_D, - GameAttribute.Power_Buff_13_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_13_Visual_Effect_None, + GameAttributes.Power_Buff_13_Visual_Effect_A, + GameAttributes.Power_Buff_13_Visual_Effect_B, + GameAttributes.Power_Buff_13_Visual_Effect_C, + GameAttributes.Power_Buff_13_Visual_Effect_D, + GameAttributes.Power_Buff_13_Visual_Effect_E); case 14: - return RuneSelect(GameAttribute.Power_Buff_14_Visual_Effect_None, - GameAttribute.Power_Buff_14_Visual_Effect_A, - GameAttribute.Power_Buff_14_Visual_Effect_B, - GameAttribute.Power_Buff_14_Visual_Effect_C, - GameAttribute.Power_Buff_14_Visual_Effect_D, - GameAttribute.Power_Buff_14_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_14_Visual_Effect_None, + GameAttributes.Power_Buff_14_Visual_Effect_A, + GameAttributes.Power_Buff_14_Visual_Effect_B, + GameAttributes.Power_Buff_14_Visual_Effect_C, + GameAttributes.Power_Buff_14_Visual_Effect_D, + GameAttributes.Power_Buff_14_Visual_Effect_E); case 15: - return RuneSelect(GameAttribute.Power_Buff_15_Visual_Effect_None, - GameAttribute.Power_Buff_15_Visual_Effect_A, - GameAttribute.Power_Buff_15_Visual_Effect_B, - GameAttribute.Power_Buff_15_Visual_Effect_C, - GameAttribute.Power_Buff_15_Visual_Effect_D, - GameAttribute.Power_Buff_15_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_15_Visual_Effect_None, + GameAttributes.Power_Buff_15_Visual_Effect_A, + GameAttributes.Power_Buff_15_Visual_Effect_B, + GameAttributes.Power_Buff_15_Visual_Effect_C, + GameAttributes.Power_Buff_15_Visual_Effect_D, + GameAttributes.Power_Buff_15_Visual_Effect_E); case 16: - return RuneSelect(GameAttribute.Power_Buff_16_Visual_Effect_None, - GameAttribute.Power_Buff_16_Visual_Effect_A, - GameAttribute.Power_Buff_16_Visual_Effect_B, - GameAttribute.Power_Buff_16_Visual_Effect_C, - GameAttribute.Power_Buff_16_Visual_Effect_D, - GameAttribute.Power_Buff_16_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_16_Visual_Effect_None, + GameAttributes.Power_Buff_16_Visual_Effect_A, + GameAttributes.Power_Buff_16_Visual_Effect_B, + GameAttributes.Power_Buff_16_Visual_Effect_C, + GameAttributes.Power_Buff_16_Visual_Effect_D, + GameAttributes.Power_Buff_16_Visual_Effect_E); case 17: - return RuneSelect(GameAttribute.Power_Buff_17_Visual_Effect_None, - GameAttribute.Power_Buff_17_Visual_Effect_A, - GameAttribute.Power_Buff_17_Visual_Effect_B, - GameAttribute.Power_Buff_17_Visual_Effect_C, - GameAttribute.Power_Buff_17_Visual_Effect_D, - GameAttribute.Power_Buff_17_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_17_Visual_Effect_None, + GameAttributes.Power_Buff_17_Visual_Effect_A, + GameAttributes.Power_Buff_17_Visual_Effect_B, + GameAttributes.Power_Buff_17_Visual_Effect_C, + GameAttributes.Power_Buff_17_Visual_Effect_D, + GameAttributes.Power_Buff_17_Visual_Effect_E); case 18: - return RuneSelect(GameAttribute.Power_Buff_18_Visual_Effect_None, - GameAttribute.Power_Buff_18_Visual_Effect_A, - GameAttribute.Power_Buff_18_Visual_Effect_B, - GameAttribute.Power_Buff_18_Visual_Effect_C, - GameAttribute.Power_Buff_18_Visual_Effect_D, - GameAttribute.Power_Buff_18_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_18_Visual_Effect_None, + GameAttributes.Power_Buff_18_Visual_Effect_A, + GameAttributes.Power_Buff_18_Visual_Effect_B, + GameAttributes.Power_Buff_18_Visual_Effect_C, + GameAttributes.Power_Buff_18_Visual_Effect_D, + GameAttributes.Power_Buff_18_Visual_Effect_E); case 19: - return RuneSelect(GameAttribute.Power_Buff_19_Visual_Effect_None, - GameAttribute.Power_Buff_19_Visual_Effect_A, - GameAttribute.Power_Buff_19_Visual_Effect_B, - GameAttribute.Power_Buff_19_Visual_Effect_C, - GameAttribute.Power_Buff_19_Visual_Effect_D, - GameAttribute.Power_Buff_19_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_19_Visual_Effect_None, + GameAttributes.Power_Buff_19_Visual_Effect_A, + GameAttributes.Power_Buff_19_Visual_Effect_B, + GameAttributes.Power_Buff_19_Visual_Effect_C, + GameAttributes.Power_Buff_19_Visual_Effect_D, + GameAttributes.Power_Buff_19_Visual_Effect_E); case 20: - return RuneSelect(GameAttribute.Power_Buff_20_Visual_Effect_None, - GameAttribute.Power_Buff_20_Visual_Effect_A, - GameAttribute.Power_Buff_20_Visual_Effect_B, - GameAttribute.Power_Buff_20_Visual_Effect_C, - GameAttribute.Power_Buff_20_Visual_Effect_D, - GameAttribute.Power_Buff_20_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_20_Visual_Effect_None, + GameAttributes.Power_Buff_20_Visual_Effect_A, + GameAttributes.Power_Buff_20_Visual_Effect_B, + GameAttributes.Power_Buff_20_Visual_Effect_C, + GameAttributes.Power_Buff_20_Visual_Effect_D, + GameAttributes.Power_Buff_20_Visual_Effect_E); case 21: - return RuneSelect(GameAttribute.Power_Buff_21_Visual_Effect_None, - GameAttribute.Power_Buff_21_Visual_Effect_A, - GameAttribute.Power_Buff_21_Visual_Effect_B, - GameAttribute.Power_Buff_21_Visual_Effect_C, - GameAttribute.Power_Buff_21_Visual_Effect_D, - GameAttribute.Power_Buff_21_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_21_Visual_Effect_None, + GameAttributes.Power_Buff_21_Visual_Effect_A, + GameAttributes.Power_Buff_21_Visual_Effect_B, + GameAttributes.Power_Buff_21_Visual_Effect_C, + GameAttributes.Power_Buff_21_Visual_Effect_D, + GameAttributes.Power_Buff_21_Visual_Effect_E); case 22: - return RuneSelect(GameAttribute.Power_Buff_22_Visual_Effect_None, - GameAttribute.Power_Buff_22_Visual_Effect_A, - GameAttribute.Power_Buff_22_Visual_Effect_B, - GameAttribute.Power_Buff_22_Visual_Effect_C, - GameAttribute.Power_Buff_22_Visual_Effect_D, - GameAttribute.Power_Buff_22_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_22_Visual_Effect_None, + GameAttributes.Power_Buff_22_Visual_Effect_A, + GameAttributes.Power_Buff_22_Visual_Effect_B, + GameAttributes.Power_Buff_22_Visual_Effect_C, + GameAttributes.Power_Buff_22_Visual_Effect_D, + GameAttributes.Power_Buff_22_Visual_Effect_E); case 23: - return RuneSelect(GameAttribute.Power_Buff_23_Visual_Effect_None, - GameAttribute.Power_Buff_23_Visual_Effect_A, - GameAttribute.Power_Buff_23_Visual_Effect_B, - GameAttribute.Power_Buff_23_Visual_Effect_C, - GameAttribute.Power_Buff_23_Visual_Effect_D, - GameAttribute.Power_Buff_23_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_23_Visual_Effect_None, + GameAttributes.Power_Buff_23_Visual_Effect_A, + GameAttributes.Power_Buff_23_Visual_Effect_B, + GameAttributes.Power_Buff_23_Visual_Effect_C, + GameAttributes.Power_Buff_23_Visual_Effect_D, + GameAttributes.Power_Buff_23_Visual_Effect_E); case 24: - return RuneSelect(GameAttribute.Power_Buff_24_Visual_Effect_None, - GameAttribute.Power_Buff_24_Visual_Effect_A, - GameAttribute.Power_Buff_24_Visual_Effect_B, - GameAttribute.Power_Buff_24_Visual_Effect_C, - GameAttribute.Power_Buff_24_Visual_Effect_D, - GameAttribute.Power_Buff_24_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_24_Visual_Effect_None, + GameAttributes.Power_Buff_24_Visual_Effect_A, + GameAttributes.Power_Buff_24_Visual_Effect_B, + GameAttributes.Power_Buff_24_Visual_Effect_C, + GameAttributes.Power_Buff_24_Visual_Effect_D, + GameAttributes.Power_Buff_24_Visual_Effect_E); case 25: - return RuneSelect(GameAttribute.Power_Buff_25_Visual_Effect_None, - GameAttribute.Power_Buff_25_Visual_Effect_A, - GameAttribute.Power_Buff_25_Visual_Effect_B, - GameAttribute.Power_Buff_25_Visual_Effect_C, - GameAttribute.Power_Buff_25_Visual_Effect_D, - GameAttribute.Power_Buff_25_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_25_Visual_Effect_None, + GameAttributes.Power_Buff_25_Visual_Effect_A, + GameAttributes.Power_Buff_25_Visual_Effect_B, + GameAttributes.Power_Buff_25_Visual_Effect_C, + GameAttributes.Power_Buff_25_Visual_Effect_D, + GameAttributes.Power_Buff_25_Visual_Effect_E); case 26: - return RuneSelect(GameAttribute.Power_Buff_26_Visual_Effect_None, - GameAttribute.Power_Buff_26_Visual_Effect_A, - GameAttribute.Power_Buff_26_Visual_Effect_B, - GameAttribute.Power_Buff_26_Visual_Effect_C, - GameAttribute.Power_Buff_26_Visual_Effect_D, - GameAttribute.Power_Buff_26_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_26_Visual_Effect_None, + GameAttributes.Power_Buff_26_Visual_Effect_A, + GameAttributes.Power_Buff_26_Visual_Effect_B, + GameAttributes.Power_Buff_26_Visual_Effect_C, + GameAttributes.Power_Buff_26_Visual_Effect_D, + GameAttributes.Power_Buff_26_Visual_Effect_E); case 27: - return RuneSelect(GameAttribute.Power_Buff_27_Visual_Effect_None, - GameAttribute.Power_Buff_27_Visual_Effect_A, - GameAttribute.Power_Buff_27_Visual_Effect_B, - GameAttribute.Power_Buff_27_Visual_Effect_C, - GameAttribute.Power_Buff_27_Visual_Effect_D, - GameAttribute.Power_Buff_27_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_27_Visual_Effect_None, + GameAttributes.Power_Buff_27_Visual_Effect_A, + GameAttributes.Power_Buff_27_Visual_Effect_B, + GameAttributes.Power_Buff_27_Visual_Effect_C, + GameAttributes.Power_Buff_27_Visual_Effect_D, + GameAttributes.Power_Buff_27_Visual_Effect_E); case 28: - return RuneSelect(GameAttribute.Power_Buff_28_Visual_Effect_None, - GameAttribute.Power_Buff_28_Visual_Effect_A, - GameAttribute.Power_Buff_28_Visual_Effect_B, - GameAttribute.Power_Buff_28_Visual_Effect_C, - GameAttribute.Power_Buff_28_Visual_Effect_D, - GameAttribute.Power_Buff_28_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_28_Visual_Effect_None, + GameAttributes.Power_Buff_28_Visual_Effect_A, + GameAttributes.Power_Buff_28_Visual_Effect_B, + GameAttributes.Power_Buff_28_Visual_Effect_C, + GameAttributes.Power_Buff_28_Visual_Effect_D, + GameAttributes.Power_Buff_28_Visual_Effect_E); case 29: - return RuneSelect(GameAttribute.Power_Buff_29_Visual_Effect_None, - GameAttribute.Power_Buff_29_Visual_Effect_A, - GameAttribute.Power_Buff_29_Visual_Effect_B, - GameAttribute.Power_Buff_29_Visual_Effect_C, - GameAttribute.Power_Buff_29_Visual_Effect_D, - GameAttribute.Power_Buff_29_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_29_Visual_Effect_None, + GameAttributes.Power_Buff_29_Visual_Effect_A, + GameAttributes.Power_Buff_29_Visual_Effect_B, + GameAttributes.Power_Buff_29_Visual_Effect_C, + GameAttributes.Power_Buff_29_Visual_Effect_D, + GameAttributes.Power_Buff_29_Visual_Effect_E); case 30: - return RuneSelect(GameAttribute.Power_Buff_30_Visual_Effect_None, - GameAttribute.Power_Buff_30_Visual_Effect_A, - GameAttribute.Power_Buff_30_Visual_Effect_B, - GameAttribute.Power_Buff_30_Visual_Effect_C, - GameAttribute.Power_Buff_30_Visual_Effect_D, - GameAttribute.Power_Buff_30_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_30_Visual_Effect_None, + GameAttributes.Power_Buff_30_Visual_Effect_A, + GameAttributes.Power_Buff_30_Visual_Effect_B, + GameAttributes.Power_Buff_30_Visual_Effect_C, + GameAttributes.Power_Buff_30_Visual_Effect_D, + GameAttributes.Power_Buff_30_Visual_Effect_E); case 31: - return RuneSelect(GameAttribute.Power_Buff_31_Visual_Effect_None, - GameAttribute.Power_Buff_31_Visual_Effect_A, - GameAttribute.Power_Buff_31_Visual_Effect_B, - GameAttribute.Power_Buff_31_Visual_Effect_C, - GameAttribute.Power_Buff_31_Visual_Effect_D, - GameAttribute.Power_Buff_31_Visual_Effect_E); + return RuneSelect(GameAttributes.Power_Buff_31_Visual_Effect_None, + GameAttributes.Power_Buff_31_Visual_Effect_A, + GameAttributes.Power_Buff_31_Visual_Effect_B, + GameAttributes.Power_Buff_31_Visual_Effect_C, + GameAttributes.Power_Buff_31_Visual_Effect_D, + GameAttributes.Power_Buff_31_Visual_Effect_E); } } } @@ -436,38 +431,38 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem switch (BuffSlot) { default: - case 0: return GameAttribute.Buff_Icon_Start_Tick0; - case 1: return GameAttribute.Buff_Icon_Start_Tick1; - case 2: return GameAttribute.Buff_Icon_Start_Tick2; - case 3: return GameAttribute.Buff_Icon_Start_Tick3; - case 4: return GameAttribute.Buff_Icon_Start_Tick4; - case 5: return GameAttribute.Buff_Icon_Start_Tick5; - case 6: return GameAttribute.Buff_Icon_Start_Tick6; - case 7: return GameAttribute.Buff_Icon_Start_Tick7; - case 8: return GameAttribute.Buff_Icon_Start_Tick8; - case 9: return GameAttribute.Buff_Icon_Start_Tick9; - case 10: return GameAttribute.Buff_Icon_Start_Tick10; - case 11: return GameAttribute.Buff_Icon_Start_Tick11; - case 12: return GameAttribute.Buff_Icon_Start_Tick12; - case 13: return GameAttribute.Buff_Icon_Start_Tick13; - case 14: return GameAttribute.Buff_Icon_Start_Tick14; - case 15: return GameAttribute.Buff_Icon_Start_Tick15; - case 16: return GameAttribute.Buff_Icon_Start_Tick16; - case 17: return GameAttribute.Buff_Icon_Start_Tick17; - case 18: return GameAttribute.Buff_Icon_Start_Tick18; - case 19: return GameAttribute.Buff_Icon_Start_Tick19; - case 20: return GameAttribute.Buff_Icon_Start_Tick20; - case 21: return GameAttribute.Buff_Icon_Start_Tick21; - case 22: return GameAttribute.Buff_Icon_Start_Tick22; - case 23: return GameAttribute.Buff_Icon_Start_Tick23; - case 24: return GameAttribute.Buff_Icon_Start_Tick24; - case 25: return GameAttribute.Buff_Icon_Start_Tick25; - case 26: return GameAttribute.Buff_Icon_Start_Tick26; - case 27: return GameAttribute.Buff_Icon_Start_Tick27; - case 28: return GameAttribute.Buff_Icon_Start_Tick28; - case 29: return GameAttribute.Buff_Icon_Start_Tick29; - case 30: return GameAttribute.Buff_Icon_Start_Tick30; - case 31: return GameAttribute.Buff_Icon_Start_Tick31; + case 0: return GameAttributes.Buff_Icon_Start_Tick0; + case 1: return GameAttributes.Buff_Icon_Start_Tick1; + case 2: return GameAttributes.Buff_Icon_Start_Tick2; + case 3: return GameAttributes.Buff_Icon_Start_Tick3; + case 4: return GameAttributes.Buff_Icon_Start_Tick4; + case 5: return GameAttributes.Buff_Icon_Start_Tick5; + case 6: return GameAttributes.Buff_Icon_Start_Tick6; + case 7: return GameAttributes.Buff_Icon_Start_Tick7; + case 8: return GameAttributes.Buff_Icon_Start_Tick8; + case 9: return GameAttributes.Buff_Icon_Start_Tick9; + case 10: return GameAttributes.Buff_Icon_Start_Tick10; + case 11: return GameAttributes.Buff_Icon_Start_Tick11; + case 12: return GameAttributes.Buff_Icon_Start_Tick12; + case 13: return GameAttributes.Buff_Icon_Start_Tick13; + case 14: return GameAttributes.Buff_Icon_Start_Tick14; + case 15: return GameAttributes.Buff_Icon_Start_Tick15; + case 16: return GameAttributes.Buff_Icon_Start_Tick16; + case 17: return GameAttributes.Buff_Icon_Start_Tick17; + case 18: return GameAttributes.Buff_Icon_Start_Tick18; + case 19: return GameAttributes.Buff_Icon_Start_Tick19; + case 20: return GameAttributes.Buff_Icon_Start_Tick20; + case 21: return GameAttributes.Buff_Icon_Start_Tick21; + case 22: return GameAttributes.Buff_Icon_Start_Tick22; + case 23: return GameAttributes.Buff_Icon_Start_Tick23; + case 24: return GameAttributes.Buff_Icon_Start_Tick24; + case 25: return GameAttributes.Buff_Icon_Start_Tick25; + case 26: return GameAttributes.Buff_Icon_Start_Tick26; + case 27: return GameAttributes.Buff_Icon_Start_Tick27; + case 28: return GameAttributes.Buff_Icon_Start_Tick28; + case 29: return GameAttributes.Buff_Icon_Start_Tick29; + case 30: return GameAttributes.Buff_Icon_Start_Tick30; + case 31: return GameAttributes.Buff_Icon_Start_Tick31; } } } @@ -479,38 +474,38 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem switch (BuffSlot) { default: - case 0: return GameAttribute.Buff_Icon_End_Tick0; - case 1: return GameAttribute.Buff_Icon_End_Tick1; - case 2: return GameAttribute.Buff_Icon_End_Tick2; - case 3: return GameAttribute.Buff_Icon_End_Tick3; - case 4: return GameAttribute.Buff_Icon_End_Tick4; - case 5: return GameAttribute.Buff_Icon_End_Tick5; - case 6: return GameAttribute.Buff_Icon_End_Tick6; - case 7: return GameAttribute.Buff_Icon_End_Tick7; - case 8: return GameAttribute.Buff_Icon_End_Tick8; - case 9: return GameAttribute.Buff_Icon_End_Tick9; - case 10: return GameAttribute.Buff_Icon_End_Tick10; - case 11: return GameAttribute.Buff_Icon_End_Tick11; - case 12: return GameAttribute.Buff_Icon_End_Tick12; - case 13: return GameAttribute.Buff_Icon_End_Tick13; - case 14: return GameAttribute.Buff_Icon_End_Tick14; - case 15: return GameAttribute.Buff_Icon_End_Tick15; - case 16: return GameAttribute.Buff_Icon_End_Tick16; - case 17: return GameAttribute.Buff_Icon_End_Tick17; - case 18: return GameAttribute.Buff_Icon_End_Tick18; - case 19: return GameAttribute.Buff_Icon_End_Tick19; - case 20: return GameAttribute.Buff_Icon_End_Tick20; - case 21: return GameAttribute.Buff_Icon_End_Tick21; - case 22: return GameAttribute.Buff_Icon_End_Tick22; - case 23: return GameAttribute.Buff_Icon_End_Tick23; - case 24: return GameAttribute.Buff_Icon_End_Tick24; - case 25: return GameAttribute.Buff_Icon_End_Tick25; - case 26: return GameAttribute.Buff_Icon_End_Tick26; - case 27: return GameAttribute.Buff_Icon_End_Tick27; - case 28: return GameAttribute.Buff_Icon_End_Tick28; - case 29: return GameAttribute.Buff_Icon_End_Tick29; - case 30: return GameAttribute.Buff_Icon_End_Tick30; - case 31: return GameAttribute.Buff_Icon_End_Tick31; + case 0: return GameAttributes.Buff_Icon_End_Tick0; + case 1: return GameAttributes.Buff_Icon_End_Tick1; + case 2: return GameAttributes.Buff_Icon_End_Tick2; + case 3: return GameAttributes.Buff_Icon_End_Tick3; + case 4: return GameAttributes.Buff_Icon_End_Tick4; + case 5: return GameAttributes.Buff_Icon_End_Tick5; + case 6: return GameAttributes.Buff_Icon_End_Tick6; + case 7: return GameAttributes.Buff_Icon_End_Tick7; + case 8: return GameAttributes.Buff_Icon_End_Tick8; + case 9: return GameAttributes.Buff_Icon_End_Tick9; + case 10: return GameAttributes.Buff_Icon_End_Tick10; + case 11: return GameAttributes.Buff_Icon_End_Tick11; + case 12: return GameAttributes.Buff_Icon_End_Tick12; + case 13: return GameAttributes.Buff_Icon_End_Tick13; + case 14: return GameAttributes.Buff_Icon_End_Tick14; + case 15: return GameAttributes.Buff_Icon_End_Tick15; + case 16: return GameAttributes.Buff_Icon_End_Tick16; + case 17: return GameAttributes.Buff_Icon_End_Tick17; + case 18: return GameAttributes.Buff_Icon_End_Tick18; + case 19: return GameAttributes.Buff_Icon_End_Tick19; + case 20: return GameAttributes.Buff_Icon_End_Tick20; + case 21: return GameAttributes.Buff_Icon_End_Tick21; + case 22: return GameAttributes.Buff_Icon_End_Tick22; + case 23: return GameAttributes.Buff_Icon_End_Tick23; + case 24: return GameAttributes.Buff_Icon_End_Tick24; + case 25: return GameAttributes.Buff_Icon_End_Tick25; + case 26: return GameAttributes.Buff_Icon_End_Tick26; + case 27: return GameAttributes.Buff_Icon_End_Tick27; + case 28: return GameAttributes.Buff_Icon_End_Tick28; + case 29: return GameAttributes.Buff_Icon_End_Tick29; + case 30: return GameAttributes.Buff_Icon_End_Tick30; + case 31: return GameAttributes.Buff_Icon_End_Tick31; } } } @@ -522,38 +517,38 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem switch (BuffSlot) { default: - case 0: return GameAttribute.Buff_Icon_Count0; - case 1: return GameAttribute.Buff_Icon_Count1; - case 2: return GameAttribute.Buff_Icon_Count2; - case 3: return GameAttribute.Buff_Icon_Count3; - case 4: return GameAttribute.Buff_Icon_Count4; - case 5: return GameAttribute.Buff_Icon_Count5; - case 6: return GameAttribute.Buff_Icon_Count6; - case 7: return GameAttribute.Buff_Icon_Count7; - case 8: return GameAttribute.Buff_Icon_Count8; - case 9: return GameAttribute.Buff_Icon_Count9; - case 10: return GameAttribute.Buff_Icon_Count10; - case 11: return GameAttribute.Buff_Icon_Count11; - case 12: return GameAttribute.Buff_Icon_Count12; - case 13: return GameAttribute.Buff_Icon_Count13; - case 14: return GameAttribute.Buff_Icon_Count14; - case 15: return GameAttribute.Buff_Icon_Count15; - case 16: return GameAttribute.Buff_Icon_Count16; - case 17: return GameAttribute.Buff_Icon_Count17; - case 18: return GameAttribute.Buff_Icon_Count18; - case 19: return GameAttribute.Buff_Icon_Count19; - case 20: return GameAttribute.Buff_Icon_Count20; - case 21: return GameAttribute.Buff_Icon_Count21; - case 22: return GameAttribute.Buff_Icon_Count22; - case 23: return GameAttribute.Buff_Icon_Count23; - case 24: return GameAttribute.Buff_Icon_Count24; - case 25: return GameAttribute.Buff_Icon_Count25; - case 26: return GameAttribute.Buff_Icon_Count26; - case 27: return GameAttribute.Buff_Icon_Count27; - case 28: return GameAttribute.Buff_Icon_Count28; - case 29: return GameAttribute.Buff_Icon_Count29; - case 30: return GameAttribute.Buff_Icon_Count30; - case 31: return GameAttribute.Buff_Icon_Count31; + case 0: return GameAttributes.Buff_Icon_Count0; + case 1: return GameAttributes.Buff_Icon_Count1; + case 2: return GameAttributes.Buff_Icon_Count2; + case 3: return GameAttributes.Buff_Icon_Count3; + case 4: return GameAttributes.Buff_Icon_Count4; + case 5: return GameAttributes.Buff_Icon_Count5; + case 6: return GameAttributes.Buff_Icon_Count6; + case 7: return GameAttributes.Buff_Icon_Count7; + case 8: return GameAttributes.Buff_Icon_Count8; + case 9: return GameAttributes.Buff_Icon_Count9; + case 10: return GameAttributes.Buff_Icon_Count10; + case 11: return GameAttributes.Buff_Icon_Count11; + case 12: return GameAttributes.Buff_Icon_Count12; + case 13: return GameAttributes.Buff_Icon_Count13; + case 14: return GameAttributes.Buff_Icon_Count14; + case 15: return GameAttributes.Buff_Icon_Count15; + case 16: return GameAttributes.Buff_Icon_Count16; + case 17: return GameAttributes.Buff_Icon_Count17; + case 18: return GameAttributes.Buff_Icon_Count18; + case 19: return GameAttributes.Buff_Icon_Count19; + case 20: return GameAttributes.Buff_Icon_Count20; + case 21: return GameAttributes.Buff_Icon_Count21; + case 22: return GameAttributes.Buff_Icon_Count22; + case 23: return GameAttributes.Buff_Icon_Count23; + case 24: return GameAttributes.Buff_Icon_Count24; + case 25: return GameAttributes.Buff_Icon_Count25; + case 26: return GameAttributes.Buff_Icon_Count26; + case 27: return GameAttributes.Buff_Icon_Count27; + case 28: return GameAttributes.Buff_Icon_Count28; + case 29: return GameAttributes.Buff_Icon_Count29; + case 30: return GameAttributes.Buff_Icon_Count30; + case 31: return GameAttributes.Buff_Icon_Count31; } } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/EffectActor.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/EffectActor.cs index 17b7413..345f642 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/EffectActor.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/EffectActor.cs @@ -6,9 +6,6 @@ using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem { @@ -41,11 +38,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem if (context != null) if (context.PowerSNO != 0) { - Attributes[GameAttribute.Rune_A, context.PowerSNO] = context.User.Attributes[GameAttribute.Rune_A, context.PowerSNO]; - Attributes[GameAttribute.Rune_B, context.PowerSNO] = context.User.Attributes[GameAttribute.Rune_B, context.PowerSNO]; - Attributes[GameAttribute.Rune_C, context.PowerSNO] = context.User.Attributes[GameAttribute.Rune_C, context.PowerSNO]; - Attributes[GameAttribute.Rune_D, context.PowerSNO] = context.User.Attributes[GameAttribute.Rune_D, context.PowerSNO]; - Attributes[GameAttribute.Rune_E, context.PowerSNO] = context.User.Attributes[GameAttribute.Rune_E, context.PowerSNO]; + Attributes[GameAttributes.Rune_A, context.PowerSNO] = context.User.Attributes[GameAttributes.Rune_A, context.PowerSNO]; + Attributes[GameAttributes.Rune_B, context.PowerSNO] = context.User.Attributes[GameAttributes.Rune_B, context.PowerSNO]; + Attributes[GameAttributes.Rune_C, context.PowerSNO] = context.User.Attributes[GameAttributes.Rune_C, context.PowerSNO]; + Attributes[GameAttributes.Rune_D, context.PowerSNO] = context.User.Attributes[GameAttributes.Rune_D, context.PowerSNO]; + Attributes[GameAttributes.Rune_E, context.PowerSNO] = context.User.Attributes[GameAttributes.Rune_E, context.PowerSNO]; } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/ActorGhostedBuff.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/ActorGhostedBuff.cs index 65b6707..a5f8a99 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/ActorGhostedBuff.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/ActorGhostedBuff.cs @@ -10,9 +10,6 @@ using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using DiIiS_NA.Core.Extensions; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations @@ -30,15 +27,15 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override bool Apply() { base.Apply(); - Target.Attributes[GameAttribute.Invulnerable] = true; - Target.Attributes[GameAttribute.Has_Look_Override] = true;//0x0782CAC5; + Target.Attributes[GameAttributes.Invulnerable] = true; + Target.Attributes[GameAttributes.Has_Look_Override] = true;//0x0782CAC5; return true; } public override void Remove() { - Target.Attributes[GameAttribute.Invulnerable] = false; - Target.Attributes[GameAttribute.Has_Look_Override] = false; + Target.Attributes[GameAttributes.Invulnerable] = false; + Target.Attributes[GameAttributes.Has_Look_Override] = false; base.Remove(); } } @@ -57,7 +54,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override bool Apply() { base.Apply(); - Target.Attributes[GameAttribute.Invulnerable] = true; + Target.Attributes[GameAttributes.Invulnerable] = true; return true; } @@ -89,7 +86,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { - Target.Attributes[GameAttribute.Invulnerable] = false; + Target.Attributes[GameAttributes.Invulnerable] = false; base.Remove(); } } @@ -117,7 +114,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override bool Apply() { base.Apply(); - Target.Attributes[GameAttribute.Invulnerable] = true; + Target.Attributes[GameAttributes.Invulnerable] = true; return true; } @@ -167,7 +164,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } } } - Target.Attributes[GameAttribute.Invulnerable] = false; + Target.Attributes[GameAttributes.Invulnerable] = false; base.Remove(); Target.Destroy(); } @@ -198,7 +195,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override bool Apply() { base.Apply(); - Target.Attributes[GameAttribute.Invulnerable] = true; + Target.Attributes[GameAttributes.Invulnerable] = true; return true; } @@ -248,7 +245,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } } } - Target.Attributes[GameAttribute.Invulnerable] = false; + Target.Attributes[GameAttributes.Invulnerable] = false; base.Remove(); Target.Destroy(); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/CooldownBuff.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/CooldownBuff.cs index 1959513..eeb9423 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/CooldownBuff.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/CooldownBuff.cs @@ -2,11 +2,6 @@ using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { @@ -41,8 +36,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Power_Cooldown_Start, TargetPowerSNO] = World.Game.TickCounter; - Target.Attributes[GameAttribute.Power_Cooldown, TargetPowerSNO] = Timeout.TimeoutTick; + Target.Attributes[GameAttributes.Power_Cooldown_Start, TargetPowerSNO] = World.Game.TickCounter; + Target.Attributes[GameAttributes.Power_Cooldown, TargetPowerSNO] = Timeout.TimeoutTick; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -50,8 +45,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Power_Cooldown_Start, TargetPowerSNO] = 0; - Target.Attributes[GameAttribute.Power_Cooldown, TargetPowerSNO] = 0; + Target.Attributes[GameAttributes.Power_Cooldown_Start, TargetPowerSNO] = 0; + Target.Attributes[GameAttributes.Power_Cooldown, TargetPowerSNO] = 0; Target.Attributes.BroadcastChangedIfRevealed(); } @@ -92,8 +87,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Recharge_Start_Time, TargetPowerSNO] = World.Game.TickCounter; - Target.Attributes[GameAttribute.Next_Charge_Gained_time, TargetPowerSNO] = Timeout.TimeoutTick; + Target.Attributes[GameAttributes.Recharge_Start_Time, TargetPowerSNO] = World.Game.TickCounter; + Target.Attributes[GameAttributes.Next_Charge_Gained_time, TargetPowerSNO] = Timeout.TimeoutTick; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -101,8 +96,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Recharge_Start_Time, TargetPowerSNO] = 0; - Target.Attributes[GameAttribute.Next_Charge_Gained_time, TargetPowerSNO] = 0; + Target.Attributes[GameAttributes.Recharge_Start_Time, TargetPowerSNO] = 0; + Target.Attributes[GameAttributes.Next_Charge_Gained_time, TargetPowerSNO] = 0; Target.Attributes.BroadcastChangedIfRevealed(); } @@ -129,10 +124,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Disabled] = true; - Target.Attributes[GameAttribute.Immobolize] = true; - Target.Attributes[GameAttribute.Untargetable] = true; - Target.Attributes[GameAttribute.CantStartDisplayedPowers] = true; + Target.Attributes[GameAttributes.Disabled] = true; + Target.Attributes[GameAttributes.Immobolize] = true; + Target.Attributes[GameAttributes.Untargetable] = true; + Target.Attributes[GameAttributes.CantStartDisplayedPowers] = true; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -140,10 +135,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Disabled] = false; - Target.Attributes[GameAttribute.Immobolize] = false; - Target.Attributes[GameAttribute.Untargetable] = false; - Target.Attributes[GameAttribute.CantStartDisplayedPowers] = false; + Target.Attributes[GameAttributes.Disabled] = false; + Target.Attributes[GameAttributes.Immobolize] = false; + Target.Attributes[GameAttributes.Untargetable] = false; + Target.Attributes[GameAttributes.CantStartDisplayedPowers] = false; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -225,8 +220,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Invulnerable] = true; - Target.Attributes[GameAttribute.Disabled] = true; + Target.Attributes[GameAttributes.Invulnerable] = true; + Target.Attributes[GameAttributes.Disabled] = true; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -234,8 +229,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Invulnerable] = false; - Target.Attributes[GameAttribute.Disabled] = false; + Target.Attributes[GameAttributes.Invulnerable] = false; + Target.Attributes[GameAttributes.Disabled] = false; Target.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/LevelUp.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/LevelUp.cs index 497d6c8..b0ea7e1 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/LevelUp.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/LevelUp.cs @@ -1,11 +1,7 @@ using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { @@ -14,7 +10,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { public override IEnumerable Run() { - User.PlayEffectGroup(Player.LevelUpEffects[User.Attributes[GameAttribute.Level] - 1]); + User.PlayEffectGroup(Player.LevelUpEffects[User.Attributes[GameAttributes.Level] - 1]); yield return WaitSeconds(0.6f); WeaponDamage(GetEnemiesInRadius(User.Position, ScriptFormula(2)), ScriptFormula(0), DamageType.Physical); yield break; diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/NephalemValorBuff.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/NephalemValorBuff.cs index 2b5099e..b86aba6 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/NephalemValorBuff.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/NephalemValorBuff.cs @@ -1,9 +1,4 @@ using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { @@ -25,9 +20,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Apply(); _currentBonus = 0.033f * StackCount; - Target.Attributes[GameAttribute.Magic_Find] += _currentBonus; - Target.Attributes[GameAttribute.Gold_Find] += _currentBonus; - Target.Attributes[GameAttribute.Experience_Bonus_Percent] += _currentBonus; + Target.Attributes[GameAttributes.Magic_Find] += _currentBonus; + Target.Attributes[GameAttributes.Gold_Find] += _currentBonus; + Target.Attributes[GameAttributes.Experience_Bonus_Percent] += _currentBonus; User.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -40,14 +35,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!stacked) return true; - Target.Attributes[GameAttribute.Magic_Find] -= _currentBonus; - Target.Attributes[GameAttribute.Gold_Find] -= _currentBonus; - Target.Attributes[GameAttribute.Experience_Bonus_Percent] -= _currentBonus; + Target.Attributes[GameAttributes.Magic_Find] -= _currentBonus; + Target.Attributes[GameAttributes.Gold_Find] -= _currentBonus; + Target.Attributes[GameAttributes.Experience_Bonus_Percent] -= _currentBonus; _currentBonus = 0.033f * StackCount; - Target.Attributes[GameAttribute.Magic_Find] += _currentBonus; - Target.Attributes[GameAttribute.Gold_Find] += _currentBonus; - Target.Attributes[GameAttribute.Experience_Bonus_Percent] += _currentBonus; + Target.Attributes[GameAttributes.Magic_Find] += _currentBonus; + Target.Attributes[GameAttributes.Gold_Find] += _currentBonus; + Target.Attributes[GameAttributes.Experience_Bonus_Percent] += _currentBonus; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -56,9 +51,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Magic_Find] -= _currentBonus; - Target.Attributes[GameAttribute.Gold_Find] -= _currentBonus; - Target.Attributes[GameAttribute.Experience_Bonus_Percent] -= _currentBonus; + Target.Attributes[GameAttributes.Magic_Find] -= _currentBonus; + Target.Attributes[GameAttributes.Gold_Find] -= _currentBonus; + Target.Attributes[GameAttributes.Experience_Bonus_Percent] -= _currentBonus; User.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/ShrineBuff.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/ShrineBuff.cs index 19178da..b1ec0dc 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/ShrineBuff.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/ShrineBuff.cs @@ -1,10 +1,5 @@ using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { @@ -33,7 +28,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Experience_Bonus_Percent] += 0.25f; + Target.Attributes[GameAttributes.Experience_Bonus_Percent] += 0.25f; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -41,7 +36,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Experience_Bonus_Percent] -= 0.25f; + Target.Attributes[GameAttributes.Experience_Bonus_Percent] -= 0.25f; Target.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/StatusDebuff.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/StatusDebuff.cs index f34bb4b..9d3cac4 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/StatusDebuff.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/StatusDebuff.cs @@ -7,11 +7,6 @@ using DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { @@ -84,7 +79,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public class DebuffBlind : SimpleBooleanStatusDebuff { public DebuffBlind(TickTimer timeout) - : base(GameAttribute.Blind, GameAttribute.Immune_To_Blind, FloatingNumberMessage.FloatType.Blinded) + : base(GameAttributes.Blind, GameAttributes.Immune_To_Blind, FloatingNumberMessage.FloatType.Blinded) { Timeout = timeout; } @@ -133,9 +128,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 100 * 15) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 100 * 15) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); Remove(); } @@ -193,19 +188,19 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public float Percentage; public DebuffChilled(float percentage, TickTimer timeout) - : base(GameAttribute.Chilled, null, null) + : base(GameAttributes.Chilled, null, null) { Percentage = percentage; Timeout = timeout; } public override bool Apply() { - if (!base.Apply() || Target.Attributes[GameAttribute.Immunity] == true) + if (!base.Apply() || Target.Attributes[GameAttributes.Immunity] == true) return false; Target.WalkSpeed *= (1f - Percentage); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= Percentage; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); if (Target is Player) @@ -221,8 +216,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); Target.WalkSpeed /= (1f - Percentage); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += Percentage; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -233,14 +228,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { public float Speed = 0; public DebuffStunned(TickTimer timeout) - : base(GameAttribute.Stunned, GameAttribute.Stun_Immune, FloatingNumberMessage.FloatType.Stunned) + : base(GameAttributes.Stunned, GameAttributes.Stun_Immune, FloatingNumberMessage.FloatType.Stunned) { Timeout = timeout; } public override bool Apply() { - if (!base.Apply() || Target.Attributes[GameAttribute.Immunity] == true) + if (!base.Apply() || Target.Attributes[GameAttributes.Immunity] == true) return false; @@ -281,7 +276,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public class AntiStun : SimpleBooleanStatusDebuff { public AntiStun(TickTimer timeout) - : base(GameAttribute.Stun_Immune, null, FloatingNumberMessage.FloatType.BrokeStun) + : base(GameAttributes.Stun_Immune, null, FloatingNumberMessage.FloatType.BrokeStun) { Timeout = timeout; } @@ -303,14 +298,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public class DebuffFeared : SimpleBooleanStatusDebuff { public DebuffFeared(TickTimer timeout) - : base(GameAttribute.Feared, GameAttribute.Fear_Immune, FloatingNumberMessage.FloatType.Feared) + : base(GameAttributes.Feared, GameAttributes.Fear_Immune, FloatingNumberMessage.FloatType.Feared) { Timeout = timeout; } public override bool Apply() { - if (!base.Apply() || Target.Attributes[GameAttribute.Immunity] == true) + if (!base.Apply() || Target.Attributes[GameAttributes.Immunity] == true) return false; if (Target is Player) @@ -330,16 +325,16 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public class DebuffRooted : SimpleBooleanStatusDebuff { public DebuffRooted(TickTimer timeout) - : base(GameAttribute.IsRooted, GameAttribute.Root_Immune, FloatingNumberMessage.FloatType.Rooted) + : base(GameAttributes.IsRooted, GameAttributes.Root_Immune, FloatingNumberMessage.FloatType.Rooted) { Timeout = timeout; } //Seems there is no Rooted attribute.. so Stunned does the same thing. public override bool Apply() { - if (!base.Apply() || Target.Attributes[GameAttribute.Immunity] == true) + if (!base.Apply() || Target.Attributes[GameAttributes.Immunity] == true) return false; - Target.Attributes[GameAttribute.Stunned] = true; + Target.Attributes[GameAttributes.Stunned] = true; Target.Attributes.BroadcastChangedIfRevealed(); if (Target is Player) @@ -356,7 +351,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Stunned] = false; + Target.Attributes[GameAttributes.Stunned] = false; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -369,18 +364,18 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public float Percentage; public DebuffSlowed(float percentage, TickTimer timeout) - : base(GameAttribute.Slow, GameAttribute.Slowdown_Immune, FloatingNumberMessage.FloatType.Snared) + : base(GameAttributes.Slow, GameAttributes.Slowdown_Immune, FloatingNumberMessage.FloatType.Snared) { Percentage = percentage; Timeout = timeout; } public override bool Apply() { - if (!base.Apply() || Target.Attributes[GameAttribute.Immunity] == true) + if (!base.Apply() || Target.Attributes[GameAttributes.Immunity] == true) return false; Target.WalkSpeed *= (1f - Percentage); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= Percentage; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); if (Target is Player) @@ -396,8 +391,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); Target.WalkSpeed /= (1f - Percentage); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += Percentage; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -412,7 +407,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } public override bool Apply() { - if (!base.Apply() || Target.Attributes[GameAttribute.Immunity] == true) + if (!base.Apply() || Target.Attributes[GameAttributes.Immunity] == true) return false; try @@ -444,14 +439,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public class DebuffFrozen : SimpleBooleanStatusDebuff { public DebuffFrozen(TickTimer timeout) - : base(GameAttribute.Frozen, GameAttribute.Freeze_Immune, FloatingNumberMessage.FloatType.Frozen) + : base(GameAttributes.Frozen, GameAttributes.Freeze_Immune, FloatingNumberMessage.FloatType.Frozen) { Timeout = timeout; } public override bool Apply() { - if (!base.Apply() || Target.Attributes[GameAttribute.Immunity]) + if (!base.Apply() || Target.Attributes[GameAttributes.Immunity]) return false; if (Target is Player player) @@ -474,20 +469,20 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public float Percentage; public SlowTimeDebuff(float percentage, TickTimer timeout) - : base(GameAttribute.Slow, GameAttribute.Slowdown_Immune, FloatingNumberMessage.FloatType.Snared) + : base(GameAttributes.Slow, GameAttributes.Slowdown_Immune, FloatingNumberMessage.FloatType.Snared) { Percentage = percentage; Timeout = timeout; } public override bool Apply() { - if (!base.Apply() || Target.Attributes[GameAttribute.Immunity] == true) + if (!base.Apply() || Target.Attributes[GameAttributes.Immunity] == true) return false; //is my projectile speed correct? Target.WalkSpeed *= (1f - Percentage); - Target.Attributes[GameAttribute.Projectile_Speed] += Target.Attributes[GameAttribute.Projectile_Speed] * 0.1f; - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= Percentage; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += Percentage; + Target.Attributes[GameAttributes.Projectile_Speed] += Target.Attributes[GameAttributes.Projectile_Speed] * 0.1f; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -496,9 +491,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); Target.WalkSpeed /= (1f - Percentage); - Target.Attributes[GameAttribute.Projectile_Speed] += Target.Attributes[GameAttribute.Projectile_Speed] / 0.1f; - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += Percentage; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= Percentage; + Target.Attributes[GameAttributes.Projectile_Speed] += Target.Attributes[GameAttributes.Projectile_Speed] / 0.1f; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -519,7 +514,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -527,7 +522,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -547,8 +542,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Casting_Speed_Percent] += Percentage; - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += Percentage; + Target.Attributes[GameAttributes.Casting_Speed_Percent] += Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -556,8 +551,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Casting_Speed_Percent] -= Percentage; - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= Percentage; + Target.Attributes[GameAttributes.Casting_Speed_Percent] -= Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -634,7 +629,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += Regen; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += Regen; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -642,7 +637,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] -= Regen; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] -= Regen; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -662,8 +657,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Casting_Speed_Bonus] += Percentage; - Target.Attributes[GameAttribute.Attacks_Per_Second_Bonus] += Percentage; + Target.Attributes[GameAttributes.Casting_Speed_Bonus] += Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Bonus] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -671,8 +666,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Casting_Speed_Bonus] -= Percentage; - Target.Attributes[GameAttribute.Attacks_Per_Second_Bonus] -= Percentage; + Target.Attributes[GameAttributes.Casting_Speed_Bonus] -= Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Bonus] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -692,7 +687,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -700,7 +695,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/Traps.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/Traps.cs index 4d90b7b..a587eba 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/Traps.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/General/Traps.cs @@ -1,15 +1,10 @@ using DiIiS_NA.Core.MPQ; using DiIiS_NA.D3_GameServer.Core.Types.SNO; -using DiIiS_NA.GameServer.Core.Types.Math; using DiIiS_NA.GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { @@ -170,7 +165,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (var target in Targets) if (target is PlayerSystem.Player || target is ActorSystem.Monster) { - User.Attributes[GameAttribute.Damage_Min] = target.Attributes[GameAttribute.Hitpoints_Max] / 20f; + User.Attributes[GameAttributes.Damage_Min] = target.Attributes[GameAttributes.Hitpoints_Max] / 20f; WeaponDamage(target, 1.5f, DamageType.Fire); } //*/ diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Barbarian.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Barbarian.cs index 3c973d9..bc50ca6 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Barbarian.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Barbarian.cs @@ -3,7 +3,6 @@ using DiIiS_NA.D3_GameServer.GSSystem.ActorSystem.Implementations.Minions; using DiIiS_NA.GameServer.Core.Types.Math; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads; @@ -117,15 +116,15 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= StackCount * ScriptFormula(2); - User.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= StackCount * ScriptFormula(2); + User.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= StackCount * ScriptFormula(2); + User.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= StackCount * ScriptFormula(2); User.Attributes.BroadcastChangedIfRevealed(); } private void _AddDamage() { - User.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += ScriptFormula(2); - User.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += ScriptFormula(2); + User.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += ScriptFormula(2); + User.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += ScriptFormula(2); User.Attributes.BroadcastChangedIfRevealed(); } } @@ -261,7 +260,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Armor_Bonus_Percent] += (ScriptFormula(33) * EnemiesHit); + User.Attributes[GameAttributes.Armor_Bonus_Percent] += (ScriptFormula(33) * EnemiesHit); User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -271,7 +270,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - User.Attributes[GameAttribute.Armor_Bonus_Percent] -= (ScriptFormula(33) * EnemiesHit); + User.Attributes[GameAttributes.Armor_Bonus_Percent] -= (ScriptFormula(33) * EnemiesHit); User.Attributes.BroadcastChangedIfRevealed(); } } @@ -303,7 +302,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { _damageMult = Rune_A > 0 ? 3.245f : 2.75f; //Volcanic Eruption _dmgType = Rune_A > 0 ? DamageType.Fire : (Rune_D > 0 ? DamageType.Lightning : DamageType.Physical); - _damageDelay = Math.Max(1f / (User.Attributes[GameAttribute.Attacks_Per_Second_Total] * 1.3f), 0.3f); + _damageDelay = Math.Max(1f / (User.Attributes[GameAttributes.Attacks_Per_Second_Total] * 1.3f), 0.3f); Timeout = WaitSeconds(_damageDelay); } @@ -312,7 +311,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; //User.Attributes[GameAttribute.Running_Rate] = User.Attributes[GameAttribute.Running_Rate] * EvalTag(PowerKeys.WalkingSpeedMultiplier); - User.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += 0.35f; + User.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += 0.35f; User.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -320,7 +319,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 0.35f; + User.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 0.35f; //User.Attributes[GameAttribute.Running_Rate] = User.Attributes[GameAttribute.Running_Rate] / EvalTag(PowerKeys.WalkingSpeedMultiplier); User.Attributes.BroadcastChangedIfRevealed(); } @@ -630,10 +629,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Damage_Done_Reduction_Percent] += ScriptFormula(0); + Target.Attributes[GameAttributes.Damage_Done_Reduction_Percent] += ScriptFormula(0); if (Rune_B > 0) { - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += ScriptFormula(14); + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += ScriptFormula(14); } Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -655,10 +654,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Damage_Done_Reduction_Percent] -= ScriptFormula(0); + Target.Attributes[GameAttributes.Damage_Done_Reduction_Percent] -= ScriptFormula(0); if (Rune_B > 0) { - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= ScriptFormula(14); + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= ScriptFormula(14); } Target.Attributes.BroadcastChangedIfRevealed(); } @@ -674,14 +673,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += ScriptFormula(4); + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += ScriptFormula(4); Target.Attributes.BroadcastChangedIfRevealed(); return true; } public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= ScriptFormula(4); + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= ScriptFormula(4); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -804,11 +803,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; //Rune_A //Total Damage Bonus - User.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += ScriptFormula(1); - User.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += ScriptFormula(1); + User.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += ScriptFormula(1); + User.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += ScriptFormula(1); //Crit Chance Bonus - User.Attributes[GameAttribute.Crit_Percent_Bonus_Capped] += (int)ScriptFormula(2); + User.Attributes[GameAttributes.Crit_Percent_Bonus_Capped] += (int)ScriptFormula(2); User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -825,9 +824,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_D > 0) { - User.Attributes[GameAttribute.Weapon_Crit_Chance] -= ChCbonus; + User.Attributes[GameAttributes.Weapon_Crit_Chance] -= ChCbonus; ChCbonus = 0.01f * GetEnemiesInRadius(User.Position, 10f).Actors.Count; - User.Attributes[GameAttribute.Weapon_Crit_Chance] += ChCbonus; + User.Attributes[GameAttributes.Weapon_Crit_Chance] += ChCbonus; } } @@ -875,12 +874,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); //Total Damage Bonus - User.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= ScriptFormula(1); - User.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= ScriptFormula(1); + User.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= ScriptFormula(1); + User.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= ScriptFormula(1); //Crit Chance Bonus - User.Attributes[GameAttribute.Crit_Percent_Bonus_Capped] -= (int)ScriptFormula(2); - User.Attributes[GameAttribute.Weapon_Crit_Chance] -= ChCbonus; + User.Attributes[GameAttributes.Crit_Percent_Bonus_Capped] -= (int)ScriptFormula(2); + User.Attributes[GameAttributes.Weapon_Crit_Chance] -= ChCbonus; User.Attributes.BroadcastChangedIfRevealed(); } } @@ -978,7 +977,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(2); + User.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(2); Target.Attributes.BroadcastChangedIfRevealed(); if (Rune_D > 0) { @@ -1018,7 +1017,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(2); + User.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(2); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1034,8 +1033,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] -= Convert.ToInt32(ScriptFormula(10)); - Target.Attributes[GameAttribute.Damage_Percent_Reduction_From_Ranged] -= Convert.ToInt32(ScriptFormula(10)); + Target.Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] -= Convert.ToInt32(ScriptFormula(10)); + Target.Attributes[GameAttributes.Damage_Percent_Reduction_From_Ranged] -= Convert.ToInt32(ScriptFormula(10)); Target.Attributes.BroadcastChangedIfRevealed(); @@ -1046,8 +1045,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - Target.Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] -= Convert.ToInt32(ScriptFormula(10)); - Target.Attributes[GameAttribute.Damage_Percent_Reduction_From_Ranged] -= Convert.ToInt32(ScriptFormula(10)); + Target.Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] -= Convert.ToInt32(ScriptFormula(10)); + Target.Attributes[GameAttributes.Damage_Percent_Reduction_From_Ranged] -= Convert.ToInt32(ScriptFormula(10)); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1064,7 +1063,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations StartCooldown(EvalTag(PowerKeys.CooldownTime)); GeneratePrimaryResource(ScriptFormula(18)); - float _resourcePool = User.Attributes[GameAttribute.Resource_Cur, 2]; + float _resourcePool = User.Attributes[GameAttributes.Resource_Cur, 2]; var proj = new Projectile( this, @@ -1157,7 +1156,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Team_Override] = 1; + Target.Attributes[GameAttributes.Team_Override] = 1; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1165,7 +1164,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Team_Override] = 10; + Target.Attributes[GameAttributes.Team_Override] = 10; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1249,8 +1248,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Slow] = true; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += ScriptFormula(5); + Target.Attributes[GameAttributes.Slow] = true; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += ScriptFormula(5); Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1259,8 +1258,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Slow] = false; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= ScriptFormula(5); + Target.Attributes[GameAttributes.Slow] = false; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= ScriptFormula(5); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1427,7 +1426,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations //User.Attributes[GameAttribute.Hitpoints_Granted_Duration] += (int)ScriptFormula(12); //User.Attributes[GameAttribute.Hitpoints_Granted] += ScriptFormula(10) * User.Attributes[GameAttribute.Hitpoints_Max_Total]; if (User is Player) //not sure about it - (User as Player).AddHP(ScriptFormula(10) * User.Attributes[GameAttribute.Hitpoints_Max_Total]); //TODO: regen on 6 seconds + (User as Player).AddHP(ScriptFormula(10) * User.Attributes[GameAttributes.Hitpoints_Max_Total]); //TODO: regen on 6 seconds User.Attributes.BroadcastChangedIfRevealed(); } }; @@ -1470,9 +1469,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); if (Rune_A > 0) { - User.Attributes[GameAttribute.Amplify_Damage_Percent] -= StackCount * ScriptFormula(11); + User.Attributes[GameAttributes.Amplify_Damage_Percent] -= StackCount * ScriptFormula(11); } - User.Attributes[GameAttribute.Attacks_Per_Second_Bonus] -= StackCount * ScriptFormula(6); + User.Attributes[GameAttributes.Attacks_Per_Second_Bonus] -= StackCount * ScriptFormula(6); User.Attributes.BroadcastChangedIfRevealed(); } @@ -1481,9 +1480,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (Rune_A > 0) { - User.Attributes[GameAttribute.Amplify_Damage_Percent] += ScriptFormula(11); + User.Attributes[GameAttributes.Amplify_Damage_Percent] += ScriptFormula(11); } - User.Attributes[GameAttribute.Attacks_Per_Second_Bonus] += ScriptFormula(6); + User.Attributes[GameAttributes.Attacks_Per_Second_Bonus] += ScriptFormula(6); User.Attributes.BroadcastChangedIfRevealed(); } } @@ -1500,7 +1499,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Movement_Bonus_Run_Speed] += ScriptFormula(8); + User.Attributes[GameAttributes.Movement_Bonus_Run_Speed] += ScriptFormula(8); User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1508,7 +1507,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Movement_Bonus_Run_Speed] -= ScriptFormula(8); + User.Attributes[GameAttributes.Movement_Bonus_Run_Speed] -= ScriptFormula(8); User.Attributes.BroadcastChangedIfRevealed(); } @@ -1523,7 +1522,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { public override IEnumerable Main() { - Target.Attributes[GameAttribute.Free_Cast, SkillsSystem.Skills.Barbarian.Situational.Revenge] = 0; + Target.Attributes[GameAttributes.Free_Cast, SkillsSystem.Skills.Barbarian.Situational.Revenge] = 0; User.Attributes.BroadcastChangedIfRevealed(); AttackPayload attack = new AttackPayload(this); @@ -1532,7 +1531,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations attack.OnHit = hitPayload => { if (User is Player) - (User as Player).AddHP(User.Attributes[GameAttribute.Hitpoints_Max_Total] * ScriptFormula(4)); + (User as Player).AddHP(User.Attributes[GameAttributes.Hitpoints_Max_Total] * ScriptFormula(4)); if (Rune_D > 0) GeneratePrimaryResource(ScriptFormula(6)); @@ -1559,14 +1558,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Weapon_Crit_Chance] += ScriptFormula(7); + User.Attributes[GameAttributes.Weapon_Crit_Chance] += ScriptFormula(7); User.Attributes.BroadcastChangedIfRevealed(); return true; } public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Weapon_Crit_Chance] -= ScriptFormula(7); + User.Attributes[GameAttributes.Weapon_Crit_Chance] -= ScriptFormula(7); User.Attributes.BroadcastChangedIfRevealed(); } } @@ -1600,7 +1599,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (Rand.NextDouble() < 0.15) { - User.Attributes[GameAttribute.Free_Cast, SkillsSystem.Skills.Barbarian.Situational.Revenge] = 1; + User.Attributes[GameAttributes.Free_Cast, SkillsSystem.Skills.Barbarian.Situational.Revenge] = 1; User.Attributes.BroadcastChangedIfRevealed(); } } @@ -1649,19 +1648,19 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(0); + User.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(0); if (Rune_B > 0) { - User.Attributes[GameAttribute.Dodge_Chance_Bonus] += ScriptFormula(14); + User.Attributes[GameAttributes.Dodge_Chance_Bonus] += ScriptFormula(14); } if (Rune_C > 0) { - User.Attributes[GameAttribute.Resistance_Percent_All] += ScriptFormula(4); + User.Attributes[GameAttributes.Resistance_Percent_All] += ScriptFormula(4); } if (Rune_E > 0) { - User.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus] += ScriptFormula(5); - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second] += ScriptFormula(6); + User.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus] += ScriptFormula(5); + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second] += ScriptFormula(6); } //User.Attributes[GameAttribute.Defense_Bonus_Percent] += ScriptFormula(0); User.Attributes.BroadcastChangedIfRevealed(); @@ -1673,19 +1672,19 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - User.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(0); + User.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(0); if (Rune_B > 0) { - User.Attributes[GameAttribute.Dodge_Chance_Bonus] -= ScriptFormula(14); + User.Attributes[GameAttributes.Dodge_Chance_Bonus] -= ScriptFormula(14); } if (Rune_C > 0) { - User.Attributes[GameAttribute.Resistance_Percent_All] -= ScriptFormula(4); + User.Attributes[GameAttributes.Resistance_Percent_All] -= ScriptFormula(4); } if (Rune_E > 0) { - User.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus] -= ScriptFormula(5); - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second] -= ScriptFormula(6); + User.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus] -= ScriptFormula(5); + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second] -= ScriptFormula(6); } //User.Attributes[GameAttribute.Defense_Bonus_Percent] -= ScriptFormula(0); User.Attributes.BroadcastChangedIfRevealed(); @@ -1703,7 +1702,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { TargetPosition = PowerMath.TranslateDirection2D(User.Position, TargetPosition, User.Position, Math.Max(Math.Min(PowerMath.Distance2D(User.Position, TargetPosition), 35f), EvalTag(PowerKeys.WalkingDistanceMin))); - User.Attributes[GameAttribute.Skill_Charges, PowerSNO] -= 1; + User.Attributes[GameAttributes.Skill_Charges, PowerSNO] -= 1; var dashBuff = new DashMoverBuff(MovementHelpers.GetCorrectPosition(User.Position, TargetPosition, User.World)); AddBuff(User, dashBuff); @@ -1742,7 +1741,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - float speed = User.Attributes[GameAttribute.Running_Rate_Total] * EvalTag(PowerKeys.WalkingSpeedMultiplier); + float speed = User.Attributes[GameAttributes.Running_Rate_Total] * EvalTag(PowerKeys.WalkingSpeedMultiplier); User.TranslateFacing(_destination, true); _mover = new ActorMover(User); @@ -1785,7 +1784,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_B > 0) { if (User is Player) - (User as Player).AddHP(ScriptFormula(21) * User.Attributes[GameAttribute.Hitpoints_Max_Total]); + (User as Player).AddHP(ScriptFormula(21) * User.Attributes[GameAttributes.Hitpoints_Max_Total]); } if (Rune_D > 0) { @@ -1822,7 +1821,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations - if (User.Attributes[GameAttribute.Skill_Charges, PowerSNO] < Max) + if (User.Attributes[GameAttributes.Skill_Charges, PowerSNO] < Max) { if (!CoolDownStarted) { @@ -1831,7 +1830,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations Task.Delay(10200).ContinueWith(delegate { CoolDownStarted = false; - User.Attributes[GameAttribute.Skill_Charges, PowerSNO] = (int)Math.Min(User.Attributes[GameAttribute.Skill_Charges, PowerSNO] + 1, Max); + User.Attributes[GameAttributes.Skill_Charges, PowerSNO] = (int)Math.Min(User.Attributes[GameAttributes.Skill_Charges, PowerSNO] + 1, Max); User.Attributes.BroadcastChangedIfRevealed(); }); } @@ -1960,7 +1959,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Crit_Percent_Bonus_Capped] += (int)ScriptFormula(9); + User.Attributes[GameAttributes.Crit_Percent_Bonus_Capped] += (int)ScriptFormula(9); User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1969,7 +1968,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Crit_Percent_Bonus_Capped] -= (int)ScriptFormula(9); + User.Attributes[GameAttributes.Crit_Percent_Bonus_Capped] -= (int)ScriptFormula(9); User.Attributes.BroadcastChangedIfRevealed(); } } @@ -2127,7 +2126,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; //nothing seems to be working here for attributes - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(1); + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(1); User.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2164,7 +2163,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(1); + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(1); User.Attributes.BroadcastChangedIfRevealed(); } } @@ -2180,7 +2179,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] += ScriptFormula(1); + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] += ScriptFormula(1); Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2188,7 +2187,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] -= ScriptFormula(1); + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] -= ScriptFormula(1); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2204,7 +2203,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Dodge_Chance_Bonus] += ScriptFormula(2); + User.Attributes[GameAttributes.Dodge_Chance_Bonus] += ScriptFormula(2); User.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2212,7 +2211,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Dodge_Chance_Bonus] -= ScriptFormula(2); + User.Attributes[GameAttributes.Dodge_Chance_Bonus] -= ScriptFormula(2); User.Attributes.BroadcastChangedIfRevealed(); } } @@ -2260,12 +2259,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; if (Rune_A > 0) { - User.Attributes[GameAttribute.Amplify_Damage_Percent] += ScriptFormula(8); + User.Attributes[GameAttributes.Amplify_Damage_Percent] += ScriptFormula(8); } - User.Attributes[GameAttribute.Crit_Percent_Bonus_Capped] += (int)ScriptFormula(0); - User.Attributes[GameAttribute.Attacks_Per_Second_Bonus] += ScriptFormula(2); - User.Attributes[GameAttribute.Dodge_Chance_Bonus] += ScriptFormula(3); - User.Attributes[GameAttribute.Movement_Bonus_Run_Speed] += ScriptFormula(1); + User.Attributes[GameAttributes.Crit_Percent_Bonus_Capped] += (int)ScriptFormula(0); + User.Attributes[GameAttributes.Attacks_Per_Second_Bonus] += ScriptFormula(2); + User.Attributes[GameAttributes.Dodge_Chance_Bonus] += ScriptFormula(3); + User.Attributes[GameAttributes.Movement_Bonus_Run_Speed] += ScriptFormula(1); User.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2304,12 +2303,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); if (Rune_A > 0) { - User.Attributes[GameAttribute.Amplify_Damage_Percent] -= ScriptFormula(8); + User.Attributes[GameAttributes.Amplify_Damage_Percent] -= ScriptFormula(8); } - User.Attributes[GameAttribute.Crit_Percent_Bonus_Capped] -= (int)ScriptFormula(0); - User.Attributes[GameAttribute.Attacks_Per_Second_Bonus] -= ScriptFormula(2); - User.Attributes[GameAttribute.Dodge_Chance_Bonus] -= ScriptFormula(3); - User.Attributes[GameAttribute.Movement_Bonus_Run_Speed] -= ScriptFormula(1); + User.Attributes[GameAttributes.Crit_Percent_Bonus_Capped] -= (int)ScriptFormula(0); + User.Attributes[GameAttributes.Attacks_Per_Second_Bonus] -= ScriptFormula(2); + User.Attributes[GameAttributes.Dodge_Chance_Bonus] -= ScriptFormula(3); + User.Attributes[GameAttributes.Movement_Bonus_Run_Speed] -= ScriptFormula(1); User.Attributes.BroadcastChangedIfRevealed(); } } @@ -2344,7 +2343,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var ancient = SpawnAncient(i); ancient.Brain.DeActivate(); ancient.Position = RandomDirection(User.Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - ancient.Attributes[GameAttribute.Untargetable] = true; + ancient.Attributes[GameAttributes.Untargetable] = true; ancient.EnterWorld(ancient.Position); ancient.PlayActionAnimation(ancient.IntroAnimation); ancients.Add(ancient); @@ -2355,7 +2354,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (var ancient in ancients) { ancient.Brain.Activate(); - ancient.Attributes[GameAttribute.Untargetable] = false; + ancient.Attributes[GameAttributes.Untargetable] = false; ancient.Attributes.BroadcastChangedIfRevealed(); } yield break; diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Crusader.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Crusader.cs index 6d49a60..5de07be 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Crusader.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Crusader.cs @@ -13,8 +13,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using DiIiS_NA.Core.Extensions; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations @@ -63,7 +61,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Block_Chance] += ScriptFormula(3); + User.Attributes[GameAttributes.Block_Chance] += ScriptFormula(3); User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -89,7 +87,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } if ((Rune_C > 0) && !HasBuff(User)) //Rebirth (buff slot 1) { - AddBuff(User, new RebirthHitPointRegenBuff(LifeRegen(User.Attributes[GameAttribute.Level]), WaitSeconds(ScriptFormula(11)))); + AddBuff(User, new RebirthHitPointRegenBuff(LifeRegen(User.Attributes[GameAttributes.Level]), WaitSeconds(ScriptFormula(11)))); } if (Rune_D > 0) //Roar { @@ -106,7 +104,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Block_Chance] -= ScriptFormula(3); + User.Attributes[GameAttributes.Block_Chance] -= ScriptFormula(3); User.Attributes.BroadcastChangedIfRevealed(); } } @@ -201,12 +199,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Attacks_Per_Second_Bonus] -= StackCount * ScriptFormula(4); + Target.Attributes[GameAttributes.Attacks_Per_Second_Bonus] -= StackCount * ScriptFormula(4); Target.Attributes.BroadcastChangedIfRevealed(); } private void _AddAmp() { - Target.Attributes[GameAttribute.Attacks_Per_Second_Bonus] += ScriptFormula(4); + Target.Attributes[GameAttributes.Attacks_Per_Second_Bonus] += ScriptFormula(4); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -240,12 +238,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= StackCount * ScriptFormula(15); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= StackCount * ScriptFormula(15); Target.Attributes.BroadcastChangedIfRevealed(); } private void _AddAmp() { - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(15); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(15); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -353,12 +351,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] -= StackCount * LifeRegen(User.Attributes[GameAttribute.Level]); + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] -= StackCount * LifeRegen(User.Attributes[GameAttributes.Level]); Target.Attributes.BroadcastChangedIfRevealed(); } private void _AddAmp() { - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += LifeRegen(User.Attributes[GameAttribute.Level]); + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += LifeRegen(User.Attributes[GameAttributes.Level]); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -442,10 +440,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_E > 0 && User is Player) //Holy Bolt { - (User as Player).AddHP(Healing(User.Attributes[GameAttribute.Level])); + (User as Player).AddHP(Healing(User.Attributes[GameAttributes.Level])); foreach (Actor ally in GetAlliesInRadius(User.Position, 10f).Actors) if (ally is Player) - (ally as Player).AddHP(Healing(User.Attributes[GameAttribute.Level])); + (ally as Player).AddHP(Healing(User.Attributes[GameAttributes.Level])); } }; attack.Apply(); @@ -494,12 +492,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] -= StackCount * ScriptFormula(13); + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] -= StackCount * ScriptFormula(13); Target.Attributes.BroadcastChangedIfRevealed(); } private void _AddAmp() { - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] += ScriptFormula(13); + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] += ScriptFormula(13); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -591,12 +589,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hitpoints_On_Hit] -= StackCount * LoH(Target.Attributes[GameAttribute.Level]); + Target.Attributes[GameAttributes.Hitpoints_On_Hit] -= StackCount * LoH(Target.Attributes[GameAttributes.Level]); Target.Attributes.BroadcastChangedIfRevealed(); } private void _AddAmp() { - Target.Attributes[GameAttribute.Hitpoints_On_Hit] += LoH(Target.Attributes[GameAttribute.Level]); + Target.Attributes[GameAttributes.Hitpoints_On_Hit] += LoH(Target.Attributes[GameAttributes.Level]); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -608,7 +606,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public float PercentageMove; public TooScaredSpeedDebuff(float percentageAps, float percentageMove, TickTimer timeout) - : base(GameAttribute.Slow, GameAttribute.Slowdown_Immune) + : base(GameAttributes.Slow, GameAttributes.Slowdown_Immune) { PercentageAps = percentageAps; PercentageMove = percentageMove; @@ -616,11 +614,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } public override bool Apply() { - if (!base.Apply() || Target.Attributes[GameAttribute.Immunity] == true) + if (!base.Apply() || Target.Attributes[GameAttributes.Immunity] == true) return false; Target.WalkSpeed *= (1f - PercentageMove); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= PercentageAps; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += PercentageMove; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= PercentageAps; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += PercentageMove; Target.Attributes.BroadcastChangedIfRevealed(); if (Target is Player) @@ -636,8 +634,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); Target.WalkSpeed /= (1f - PercentageMove); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += PercentageAps; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= PercentageMove; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += PercentageAps; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= PercentageMove; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -685,7 +683,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Block_Chance] += Percentage; + Target.Attributes[GameAttributes.Block_Chance] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -693,7 +691,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Block_Chance] -= Percentage; + Target.Attributes[GameAttributes.Block_Chance] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -739,11 +737,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_C > 0) CDRActive = true; //Rally if (Rune_D > 0) //Prophet - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(3); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(3); if (Rune_E > 0) //Hasteful - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] += ScriptFormula(17); - Target.Attributes[GameAttribute.Attacks_Per_Second_Bonus] += PercentageAps; - Target.Attributes[GameAttribute.Resource_Regen_Bonus_Percent] += PercentageWrathRegen; + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] += ScriptFormula(17); + Target.Attributes[GameAttributes.Attacks_Per_Second_Bonus] += PercentageAps; + Target.Attributes[GameAttributes.Resource_Regen_Bonus_Percent] += PercentageWrathRegen; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -784,11 +782,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); if (Rune_D > 0) //Prophet - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(3); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(3); if (Rune_E > 0) //Hasteful - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] -= ScriptFormula(17); - Target.Attributes[GameAttribute.Attacks_Per_Second_Bonus] -= PercentageAps; - Target.Attributes[GameAttribute.Resource_Regen_Bonus_Percent] -= PercentageWrathRegen; + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] -= ScriptFormula(17); + Target.Attributes[GameAttributes.Attacks_Per_Second_Bonus] -= PercentageAps; + Target.Attributes[GameAttributes.Resource_Regen_Bonus_Percent] -= PercentageWrathRegen; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -826,9 +824,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations attack.Targets.Actors.AddRange(GetEnemiesInArcDirection(User.Position, TargetPosition, Rune_D > 0 ? 8f : 20f, 120f).Actors.Where(a => !attack.Targets.Actors.Contains(a))); - if (Rune_B > 0) attack.AddWeaponDamage((3.25f + (User.Attributes[GameAttribute.Block_Chance] * 3f)), DamageType.Holy); //Shattered Shield - else if (Rune_D > 0) attack.AddWeaponDamage((5.5f + (User.Attributes[GameAttribute.Block_Chance] * 1.5f)), DamageType.Holy); //Pound - else attack.AddWeaponDamage((3.25f + (User.Attributes[GameAttribute.Block_Chance] * 3f)), DamageType.Holy); + if (Rune_B > 0) attack.AddWeaponDamage((3.25f + (User.Attributes[GameAttributes.Block_Chance] * 3f)), DamageType.Holy); //Shattered Shield + else if (Rune_D > 0) attack.AddWeaponDamage((5.5f + (User.Attributes[GameAttributes.Block_Chance] * 1.5f)), DamageType.Holy); //Pound + else attack.AddWeaponDamage((3.25f + (User.Attributes[GameAttributes.Block_Chance] * 3f)), DamageType.Holy); attack.OnHit = (hitPayload) => { @@ -859,7 +857,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations proj.OnCollision = (hit) => { if ((Target != null) && (hit == Target)) return; - WeaponDamage(hit, 1.35f + (User.Attributes[GameAttribute.Block_Chance] * 1f), DamageType.Holy); + WeaponDamage(hit, 1.35f + (User.Attributes[GameAttributes.Block_Chance] * 1f), DamageType.Holy); }; proj.Launch(projTarget, 0.5f); } @@ -890,7 +888,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - float speed = User.Attributes[GameAttribute.Running_Rate_Total] * EvalTag(PowerKeys.WalkingSpeedMultiplier); + float speed = User.Attributes[GameAttributes.Running_Rate_Total] * EvalTag(PowerKeys.WalkingSpeedMultiplier); User.TranslateFacing(_destination, true); _mover = new ActorMover(User); @@ -926,7 +924,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_B > 0) DmgType = DamageType.Fire; if (Rune_D > 0) DmgType = DamageType.Lightning; if (Rune_E > 0) DmgType = DamageType.Cold; - var LoH = LifeOnHit(User.Attributes[GameAttribute.Level]); + var LoH = LifeOnHit(User.Attributes[GameAttributes.Level]); int heals = 0; AttackPayload attack = new AttackPayload(this); @@ -1075,7 +1073,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations //hit.PlayEffectGroup(RuneSelect(353682, 353683, 353684, 353685, 353686, 353687)); AttackPayload attack = new AttackPayload(this); attack.SetSingleTarget(hit); - attack.AddWeaponDamage((ScriptFormula(3) + (User.Attributes[GameAttribute.Block_Chance] * ScriptFormula(17))), DamageType.Holy); + attack.AddWeaponDamage((ScriptFormula(3) + (User.Attributes[GameAttributes.Block_Chance] * ScriptFormula(17))), DamageType.Holy); attack.OnHit = (hitPayload) => { if (Rand.NextDouble() < ScriptFormula(26)) @@ -1095,7 +1093,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations proj2.OnCollision = (hit) => { //hit.PlayEffectGroup(RuneSelect(353682, 353683, 353684, 353685, 353686, 353687)); - WeaponDamage(hit, ScriptFormula(38) + (User.Attributes[GameAttribute.Block_Chance] * ScriptFormula(17)), DamageType.Holy); + WeaponDamage(hit, ScriptFormula(38) + (User.Attributes[GameAttributes.Block_Chance] * ScriptFormula(17)), DamageType.Holy); var additional_targets = GetEnemiesInRadius(hit.Position, 15f).Actors.Take((int)ScriptFormula(4)); foreach (var target in additional_targets) { @@ -1134,7 +1132,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations //hit.PlayEffectGroup(RuneSelect(353682, 353683, 353684, 353685, 353686, 353687)); AttackPayload attack = new AttackPayload(this); attack.SetSingleTarget(hit); - attack.AddWeaponDamage((ScriptFormula(3) + (User.Attributes[GameAttribute.Block_Chance] * ScriptFormula(17))), damageType); + attack.AddWeaponDamage((ScriptFormula(3) + (User.Attributes[GameAttributes.Block_Chance] * ScriptFormula(17))), damageType); attack.OnHit = (hitPayload) => { if (Rune_A > 0 && Rand.NextDouble() < (ScriptFormula(33) - iteration * ScriptFormula(19))) //Staggering Shield @@ -1153,7 +1151,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations private void ShieldOnHitSecondary(Actor hit, int iteration) //Boost: added block chance to damage, same as base effect { //hit.PlayEffectGroup(RuneSelect(353682, 353683, 353684, 353685, 353686, 353687)); - WeaponDamage(hit, ScriptFormula(38) + (User.Attributes[GameAttribute.Block_Chance] * ScriptFormula(17)), DamageType.Holy); + WeaponDamage(hit, ScriptFormula(38) + (User.Attributes[GameAttributes.Block_Chance] * ScriptFormula(17)), DamageType.Holy); } [ImplementsPowerBuff(2, true)] @@ -1185,14 +1183,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= StackCount * ScriptFormula(22); - Target.Attributes[GameAttribute.Hitpoints_Regen_Bonus_Percent] -= StackCount * ScriptFormula(23); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= StackCount * ScriptFormula(22); + Target.Attributes[GameAttributes.Hitpoints_Regen_Bonus_Percent] -= StackCount * ScriptFormula(23); Target.Attributes.BroadcastChangedIfRevealed(); } private void _AddAmp() { - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(22); - Target.Attributes[GameAttribute.Hitpoints_Regen_Bonus_Percent] += ScriptFormula(23); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(22); + Target.Attributes[GameAttributes.Hitpoints_Regen_Bonus_Percent] += ScriptFormula(23); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1271,7 +1269,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_A > 0) //Heaven's Tempest { //This aoe's stacking is allowed in retail - var tempest = SpawnEffect(ActorSno._x1_crusader_fistofheavens_teslacoil_stormcloud, fistPoint.Position, 0, WaitSeconds(ScriptFormula(10) + User.Attributes[GameAttribute.Power_Duration_Increase, 30680])); + var tempest = SpawnEffect(ActorSno._x1_crusader_fistofheavens_teslacoil_stormcloud, fistPoint.Position, 0, WaitSeconds(ScriptFormula(10) + User.Attributes[GameAttributes.Power_Duration_Increase, 30680])); tempest.UpdateDelay = 1f; tempest.OnUpdate = () => { @@ -1284,7 +1282,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } if (Rune_C > 0) //Fissure { - var fissure = SpawnEffect(ActorSno._x1_crusader_fistofheavens_teslacoil, fistPoint.Position, 0, WaitSeconds(ScriptFormula(18) + User.Attributes[GameAttribute.Power_Duration_Increase, 30680])); + var fissure = SpawnEffect(ActorSno._x1_crusader_fistofheavens_teslacoil, fistPoint.Position, 0, WaitSeconds(ScriptFormula(18) + User.Attributes[GameAttributes.Power_Duration_Increase, 30680])); fissure.UpdateDelay = 0.8f; fissure.OnUpdate = () => { @@ -1373,7 +1371,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var avatar = new AvatarRanged(World, this, i, ScriptFormula(8) * damageMult, WaitSeconds(ScriptFormula(35) + 2f)); avatar.Brain.DeActivate(); avatar.Position = RandomDirection(User.Position, 3f, 8f); - avatar.Attributes[GameAttribute.Untargetable] = true; + avatar.Attributes[GameAttributes.Untargetable] = true; avatar.EnterWorld(avatar.Position); avatars.Add(avatar); @@ -1384,7 +1382,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (Actor avatar in avatars) { (avatar as Minion).Brain.Activate(); - avatar.Attributes[GameAttribute.Untargetable] = false; + avatar.Attributes[GameAttributes.Untargetable] = false; avatar.Attributes.BroadcastChangedIfRevealed(); } yield break; @@ -1410,7 +1408,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var avatar = new AvatarMelee(World, this, i, ScriptFormula(46) * damageMult, WaitSeconds(ScriptFormula(36) + 2f)); avatar.Brain.DeActivate(); avatar.Position = RandomDirection(User.Position, 3f, 8f); - avatar.Attributes[GameAttribute.Untargetable] = true; + avatar.Attributes[GameAttributes.Untargetable] = true; avatar.EnterWorld(avatar.Position); avatars.Add(avatar); @@ -1421,7 +1419,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (Actor avatar in avatars) { (avatar as Minion).Brain.Activate(); - avatar.Attributes[GameAttribute.Untargetable] = false; + avatar.Attributes[GameAttributes.Untargetable] = false; avatar.Attributes.BroadcastChangedIfRevealed(); } yield break; @@ -1566,7 +1564,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var avatar = new AvatarMelee(World, this, i, ScriptFormula(49), WaitSeconds(ScriptFormula(28) + 2f)); avatar.Brain.DeActivate(); avatar.Position = RandomDirection(User.Position, 3f, 8f); - avatar.Attributes[GameAttribute.Untargetable] = true; + avatar.Attributes[GameAttributes.Untargetable] = true; avatar.EnterWorld(avatar.Position); avatars.Add(avatar); @@ -1577,13 +1575,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (Actor avatar in avatars) { (avatar as Minion).Brain.Activate(); - avatar.Attributes[GameAttribute.Untargetable] = false; + avatar.Attributes[GameAttributes.Untargetable] = false; avatar.Attributes.BroadcastChangedIfRevealed(); } } if (Rune_E > 0) //Flurry { - var proxy = SpawnEffect(ActorSno._x1_crusader_fallingsword_swordnadorig_spawner, TargetPosition, 0, WaitSeconds(ScriptFormula(41) + User.Attributes[GameAttribute.Power_Duration_Increase, 30680])); + var proxy = SpawnEffect(ActorSno._x1_crusader_fallingsword_swordnadorig_spawner, TargetPosition, 0, WaitSeconds(ScriptFormula(41) + User.Attributes[GameAttributes.Power_Duration_Increase, 30680])); proxy.UpdateDelay = 1f; proxy.OnUpdate = () => { @@ -1628,7 +1626,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations AddBuff(hitPayload.Target, new VerdictDebuff(ScriptFormula(2), WaitSeconds(ScriptFormula(5)))); if (Rune_C > 0) //Emblazoned shield - if (hitPayload.Target.Attributes[GameAttribute.Hitpoints_Cur] < hitPayload.Target.Attributes[GameAttribute.Hitpoints_Max_Total] * ScriptFormula(15)) + if (hitPayload.Target.Attributes[GameAttributes.Hitpoints_Cur] < hitPayload.Target.Attributes[GameAttributes.Hitpoints_Max_Total] * ScriptFormula(15)) if (Rand.NextDouble() < ScriptFormula(14)) { AttackPayload blast = new AttackPayload(this); @@ -1660,7 +1658,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Debuff_Duration_Reduction_Percent] += Percentage; + Target.Attributes[GameAttributes.Debuff_Duration_Reduction_Percent] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1668,7 +1666,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Debuff_Duration_Reduction_Percent] -= Percentage; + Target.Attributes[GameAttributes.Debuff_Duration_Reduction_Percent] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1684,14 +1682,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Team_Override] = 1; + Target.Attributes[GameAttributes.Team_Override] = 1; Target.Attributes.BroadcastChangedIfRevealed(); return true; } public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Team_Override] = 10; + Target.Attributes[GameAttributes.Team_Override] = 10; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1729,8 +1727,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; if (Rune_D > 0) //Reflective skin - Target.Attributes[GameAttribute.Thorns_Fixed] *= ScriptFormula(15); - Target.Attributes[GameAttribute.Damage_Absorb_Percent] += Percentage; + Target.Attributes[GameAttributes.Thorns_Fixed] *= ScriptFormula(15); + Target.Attributes[GameAttributes.Damage_Absorb_Percent] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1768,8 +1766,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); if (Rune_D > 0) //Reflective skin - Target.Attributes[GameAttribute.Thorns_Fixed] /= ScriptFormula(15); - Target.Attributes[GameAttribute.Damage_Absorb_Percent] -= Percentage; + Target.Attributes[GameAttributes.Thorns_Fixed] /= ScriptFormula(15); + Target.Attributes[GameAttributes.Damage_Absorb_Percent] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); if (Rune_C > 0) //Explosive skin @@ -1800,7 +1798,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations float duration = Rune_A > 0 ? ScriptFormula(10) : ScriptFormula(1); float radius = Rune_C > 0 ? ScriptFormula(11) : ScriptFormula(3); //Bathed in Light - float healing = LifeRegen(User.Attributes[GameAttribute.Level]); + float healing = LifeRegen(User.Attributes[GameAttributes.Level]); if (Rune_C > 0) healing *= 1.5f; var proxy = SpawnEffect( @@ -1814,7 +1812,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations ), User.Position, 0, - WaitSeconds(duration + User.Attributes[GameAttribute.Power_Duration_Increase, 30680]) + WaitSeconds(duration + User.Attributes[GameAttributes.Power_Duration_Increase, 30680]) ); if (Rune_A > 0) SpawnEffect(ActorSno._x1_crusader_consecration_wall, User.Position); //Aegis Purgatory proxy.UpdateDelay = 0.9f; @@ -1898,7 +1896,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += Percentage; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1906,7 +1904,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] -= Percentage; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1960,7 +1958,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Stunned] = true; + Target.Attributes[GameAttributes.Stunned] = true; Target.Attributes.BroadcastChangedIfRevealed(); if (Target is Player) @@ -1977,7 +1975,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Stunned] = false; + Target.Attributes[GameAttributes.Stunned] = false; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2015,12 +2013,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] -= StackCount * LifeRegen(Target.Attributes[GameAttribute.Level]); + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] -= StackCount * LifeRegen(Target.Attributes[GameAttributes.Level]); Target.Attributes.BroadcastChangedIfRevealed(); } private void _AddAmp() { - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += LifeRegen(Target.Attributes[GameAttribute.Level]); + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += LifeRegen(Target.Attributes[GameAttributes.Level]); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2163,8 +2161,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += 1f; - User.Attributes[GameAttribute.Walk_Passability_Power_SNO] = 243853; + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += 1f; + User.Attributes[GameAttributes.Walk_Passability_Power_SNO] = 243853; User.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2228,8 +2226,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= 1f; - User.Attributes[GameAttribute.Walk_Passability_Power_SNO] = -1; + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= 1f; + User.Attributes[GameAttributes.Walk_Passability_Power_SNO] = -1; User.Attributes.BroadcastChangedIfRevealed(); } } @@ -2331,14 +2329,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; if (Rune_A > 0 && Primary) //Invincible - Target.Attributes[GameAttribute.Hitpoints_On_Hit] += LoH(Target.Attributes[GameAttribute.Level]); + Target.Attributes[GameAttributes.Hitpoints_On_Hit] += LoH(Target.Attributes[GameAttributes.Level]); if (Rune_C > 0 && Primary) //Critical - Target.Attributes[GameAttribute.Crit_Damage_Percent] += ScriptFormula(13); + Target.Attributes[GameAttributes.Crit_Damage_Percent] += ScriptFormula(13); if (Rune_D > 0 && Primary) //Unstoppable Force - Target.Attributes[GameAttribute.Resource_Cost_Reduction_Percent] += ScriptFormula(15); + Target.Attributes[GameAttributes.Resource_Cost_Reduction_Percent] += ScriptFormula(15); if (Rune_E > 0 && Primary) //Answered Prayer, done in DeathPayload Glory = true; - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2347,12 +2345,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); if (Rune_A > 0 && Primary) - Target.Attributes[GameAttribute.Hitpoints_On_Hit] -= LoH(Target.Attributes[GameAttribute.Level]); + Target.Attributes[GameAttributes.Hitpoints_On_Hit] -= LoH(Target.Attributes[GameAttributes.Level]); if (Rune_C > 0 && Primary) - Target.Attributes[GameAttribute.Crit_Damage_Percent] -= ScriptFormula(13); + Target.Attributes[GameAttributes.Crit_Damage_Percent] -= ScriptFormula(13); if (Rune_D > 0 && Primary) - Target.Attributes[GameAttribute.Resource_Cost_Reduction_Percent] -= ScriptFormula(15); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= Percentage; + Target.Attributes[GameAttributes.Resource_Cost_Reduction_Percent] -= ScriptFormula(15); + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2386,7 +2384,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2413,7 +2411,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2470,11 +2468,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; if (Rune_B > 0) //Immovable Object - Target.Attributes[GameAttribute.Armor_Bonus_Item] += ScriptFormula(5); - if (Rune_C > 0) HPTreshold = ShieldTreshold(User.Attributes[GameAttribute.Level]); //Faith's Armor + Target.Attributes[GameAttributes.Armor_Bonus_Item] += ScriptFormula(5); + if (Rune_C > 0) HPTreshold = ShieldTreshold(User.Attributes[GameAttributes.Level]); //Faith's Armor if (Rune_E > 0) //Bravery - Target.Attributes[GameAttribute.Stun_Immune] = true; - Target.Attributes[GameAttribute.Resistance_All] += Allres; + Target.Attributes[GameAttributes.Stun_Immune] = true; + Target.Attributes[GameAttributes.Resistance_All] += Allres; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2502,10 +2500,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); if (Rune_B > 0) - Target.Attributes[GameAttribute.Armor_Bonus_Item] -= ScriptFormula(5); + Target.Attributes[GameAttributes.Armor_Bonus_Item] -= ScriptFormula(5); if (Rune_E > 0) - Target.Attributes[GameAttribute.Stun_Immune] = false; - Target.Attributes[GameAttribute.Resistance_All] -= Allres; + Target.Attributes[GameAttributes.Stun_Immune] = false; + Target.Attributes[GameAttributes.Resistance_All] -= Allres; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2539,12 +2537,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Damage_Dealt_Percent_Bonus] += StackCount * ScriptFormula(7); + Target.Attributes[GameAttributes.Damage_Dealt_Percent_Bonus] += StackCount * ScriptFormula(7); Target.Attributes.BroadcastChangedIfRevealed(); } private void _AddAmp() { - Target.Attributes[GameAttribute.Damage_Dealt_Percent_Bonus] -= ScriptFormula(7); + Target.Attributes[GameAttributes.Damage_Dealt_Percent_Bonus] -= ScriptFormula(7); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2578,7 +2576,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Resistance_All] += Allres; + Target.Attributes[GameAttributes.Resistance_All] += Allres; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2605,7 +2603,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Resistance_All] -= Allres; + Target.Attributes[GameAttributes.Resistance_All] -= Allres; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2630,11 +2628,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations StartCooldown(EvalTag(PowerKeys.CooldownTime)); if (!HasBuff(User)) - AddBuff(User, new LawsShieldBuff(ShieldTreshold(User.Attributes[GameAttribute.Level]), WaitSeconds(ScriptFormula(19) + durationBonus), true)); + AddBuff(User, new LawsShieldBuff(ShieldTreshold(User.Attributes[GameAttributes.Level]), WaitSeconds(ScriptFormula(19) + durationBonus), true)); foreach (Actor ally in GetAlliesInRadius(User.Position, 60f).Actors) if (!HasBuff(ally)) - AddBuff(ally, new LawsShieldBuff(ShieldTreshold(User.Attributes[GameAttribute.Level]), WaitSeconds(ScriptFormula(19) + durationBonus), false)); + AddBuff(ally, new LawsShieldBuff(ShieldTreshold(User.Attributes[GameAttributes.Level]), WaitSeconds(ScriptFormula(19) + durationBonus), false)); yield break; } @@ -2663,11 +2661,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_A > 0) //Wings of Angels { - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(4); - Target.Attributes[GameAttribute.Walk_Passability_Power_SNO] = 342279; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(4); + Target.Attributes[GameAttributes.Walk_Passability_Power_SNO] = 342279; } if (Rune_B > 0) //Eternal hope - Target.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus] += ScriptFormula(8); + Target.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus] += ScriptFormula(8); if (Rune_C > 0) //Hopeful cry { AttackPayload globeDrop = new AttackPayload(this); @@ -2701,11 +2699,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_A > 0) { - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(4); - Target.Attributes[GameAttribute.Walk_Passability_Power_SNO] = -1; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(4); + Target.Attributes[GameAttributes.Walk_Passability_Power_SNO] = -1; } if (Rune_B > 0) - Target.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus] -= ScriptFormula(8); + Target.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus] -= ScriptFormula(8); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2718,7 +2716,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { RemoveBuffs(User, SkillsSystem.Skills.Crusader.Situational.LawsOfJustice); RemoveBuffs(User, SkillsSystem.Skills.Crusader.Situational.LawsOfValor); - AddBuff(User, new LawsRegenPassiveBuff(LifeRegen(User.Attributes[GameAttribute.Level]), null, true)); + AddBuff(User, new LawsRegenPassiveBuff(LifeRegen(User.Attributes[GameAttributes.Level]), null, true)); yield break; } @@ -2744,7 +2742,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += Regen; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += Regen; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2771,7 +2769,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] -= Regen; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] -= Regen; Target.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/DemonHunter.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/DemonHunter.cs index a67ebff..e65cc0f 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/DemonHunter.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/DemonHunter.cs @@ -15,7 +15,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Effect; using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; using DiIiS_NA.Core.Extensions; @@ -726,7 +725,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations WeaponDamage(GetEnemiesInRadius(mine.Position, ScriptFormula(29)), ScriptFormula(28), DamageType.Poison); }; } - float speed = User.Attributes[GameAttribute.Running_Rate_Total] * 3f; + float speed = User.Attributes[GameAttributes.Running_Rate_Total] * 3f; Vector3D destination = PowerMath.TranslateDirection2D(TargetPosition, User.Position, User.Position, ScriptFormula(7));//this needs to be the opposite direction of the facing direction// ScriptFormula(7); ActorMover _mover; //lets move backwards! @@ -873,7 +872,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Weapon_Crit_Chance] += 0.1f; + Target.Attributes[GameAttributes.Weapon_Crit_Chance] += 0.1f; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -881,7 +880,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - Target.Attributes[GameAttribute.Weapon_Crit_Chance] -= 0.1f; + Target.Attributes[GameAttributes.Weapon_Crit_Chance] -= 0.1f; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -901,7 +900,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations EffectsPerSecond = 0.1f; ticks = 0; UsePrimaryResource(EvalTag(PowerKeys.ResourceCost)); - User.Attributes[GameAttribute.Projectile_Speed] = User.Attributes[GameAttribute.Projectile_Speed] * ScriptFormula(22); + User.Attributes[GameAttributes.Projectile_Speed] = User.Attributes[GameAttributes.Projectile_Speed] * ScriptFormula(22); User.Attributes.BroadcastChangedIfRevealed(); } @@ -909,7 +908,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (_target != null) _target.Destroy(); - User.Attributes[GameAttribute.Projectile_Speed] = User.Attributes[GameAttribute.Projectile_Speed] / ScriptFormula(22); + User.Attributes[GameAttributes.Projectile_Speed] = User.Attributes[GameAttributes.Projectile_Speed] / ScriptFormula(22); User.Attributes.BroadcastChangedIfRevealed(); } @@ -1227,7 +1226,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Hitpoints_On_Hit] += LoH(User.Attributes[GameAttribute.Level]); + User.Attributes[GameAttributes.Hitpoints_On_Hit] += LoH(User.Attributes[GameAttributes.Level]); if (Rune_A > 0) //Night Bane { @@ -1242,11 +1241,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } if (Rune_B > 0) //Shadow Glide { - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(2); + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(2); } if (Rune_C > 0) //Gloom { - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(4); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(4); } Target.Attributes.BroadcastChangedIfRevealed(); @@ -1256,15 +1255,15 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Hitpoints_On_Hit] -= LoH(User.Attributes[GameAttribute.Level]); + User.Attributes[GameAttributes.Hitpoints_On_Hit] -= LoH(User.Attributes[GameAttributes.Level]); if (Rune_B > 0) { - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(2); + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(2); } if (Rune_C > 0) { - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(4); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(4); } Target.Attributes.BroadcastChangedIfRevealed(); @@ -1281,7 +1280,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override IEnumerable Main() { UsePrimaryResource(EvalTag(PowerKeys.ResourceCost)); - User.Attributes[GameAttribute.Skill_Charges, 75301] -= 1; + User.Attributes[GameAttributes.Skill_Charges, 75301] -= 1; if (Rune_C > 0) { if (Target != null) @@ -1403,11 +1402,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations else { Max = 4; - if (User.Attributes[GameAttribute.Skill_Charges, PowerSNO] == 5) - User.Attributes[GameAttribute.Skill_Charges, PowerSNO] = 4; + if (User.Attributes[GameAttributes.Skill_Charges, PowerSNO] == 5) + User.Attributes[GameAttributes.Skill_Charges, PowerSNO] = 4; } - if (User.Attributes[GameAttribute.Skill_Charges, PowerSNO] < Max) + if (User.Attributes[GameAttributes.Skill_Charges, PowerSNO] < Max) { if(!CoolDownStarted) { @@ -1416,7 +1415,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations Task.Delay(6100).ContinueWith(delegate { CoolDownStarted = false; - User.Attributes[GameAttribute.Skill_Charges, PowerSNO] = (int)Math.Min(User.Attributes[GameAttribute.Skill_Charges, PowerSNO] + 1, Max); + User.Attributes[GameAttributes.Skill_Charges, PowerSNO] = (int)Math.Min(User.Attributes[GameAttributes.Skill_Charges, PowerSNO] + 1, Max); //User.Attributes[GameAttribute.Next_Charge_Gained_time, 75301] = 0; User.Attributes.BroadcastChangedIfRevealed(); }); @@ -1556,13 +1555,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Has_Look_Override] = true;//0x04E733FD; - User.Attributes[GameAttribute.Stealthed] = true; + User.Attributes[GameAttributes.Has_Look_Override] = true;//0x04E733FD; + User.Attributes[GameAttributes.Stealthed] = true; (User as Player).SpeedCheckDisabled = true; if (Rune_E > 0) { - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(12); + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(12); } return true; } @@ -1588,13 +1587,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); //User.PlayEffectGroup(133698); //reappear - User.Attributes[GameAttribute.Stealthed] = false; - User.Attributes[GameAttribute.Has_Look_Override] = false; + User.Attributes[GameAttributes.Stealthed] = false; + User.Attributes[GameAttributes.Has_Look_Override] = false; (User as Player).SpeedCheckDisabled = false; if (Rune_E > 0) { - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(12); + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(12); } } } @@ -1630,11 +1629,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Projectile_Speed] = Target.Attributes[GameAttribute.Projectile_Speed] * ScriptFormula(13); + Target.Attributes[GameAttributes.Projectile_Speed] = Target.Attributes[GameAttributes.Projectile_Speed] * ScriptFormula(13); if (Rune_D <= 0) //Drifting Shadow - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] -= 0.25f; + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] -= 0.25f; if (Rune_B > 0) - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += (ScriptFormula(28) - 1f); + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += (ScriptFormula(28) - 1f); Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1720,11 +1719,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - Target.Attributes[GameAttribute.Projectile_Speed] = Target.Attributes[GameAttribute.Projectile_Speed] / ScriptFormula(13); + Target.Attributes[GameAttributes.Projectile_Speed] = Target.Attributes[GameAttributes.Projectile_Speed] / ScriptFormula(13); if (Rune_D <= 0) //Drifting Shadow - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] += 0.25f; + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] += 0.25f; if (Rune_B > 0) - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= (ScriptFormula(28) - 1f); + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= (ScriptFormula(28) - 1f); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1771,7 +1770,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Debuff_Duration_Reduction_Percent] += ScriptFormula(1); + Target.Attributes[GameAttributes.Debuff_Duration_Reduction_Percent] += ScriptFormula(1); return true; } @@ -1809,7 +1808,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Debuff_Duration_Reduction_Percent] -= ScriptFormula(1); + Target.Attributes[GameAttributes.Debuff_Duration_Reduction_Percent] -= ScriptFormula(1); } } } @@ -1842,7 +1841,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { GenerateSecondaryResource(25f); if (User is Player) - (User as Player).AddHP(User.Attributes[GameAttribute.Hitpoints_Max_Total] * ScriptFormula(6)); + (User as Player).AddHP(User.Attributes[GameAttributes.Hitpoints_Max_Total] * ScriptFormula(6)); } else { @@ -1899,9 +1898,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - if (User.Attributes[GameAttribute.Rune_B, SkillsSystem.Skills.DemonHunter.Discipline.Preparation] > 0) + if (User.Attributes[GameAttributes.Rune_B, SkillsSystem.Skills.DemonHunter.Discipline.Preparation] > 0) { - User.Attributes[GameAttribute.Resource_Max_Bonus, 6] += 15f; + User.Attributes[GameAttributes.Resource_Max_Bonus, 6] += 15f; User.Attributes.BroadcastChangedIfRevealed(); } @@ -1912,9 +1911,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - if (User.Attributes[GameAttribute.Rune_B, SkillsSystem.Skills.DemonHunter.Discipline.Preparation] > 0) + if (User.Attributes[GameAttributes.Rune_B, SkillsSystem.Skills.DemonHunter.Discipline.Preparation] > 0) { - User.Attributes[GameAttribute.Resource_Max_Bonus, 6] -= 15f; + User.Attributes[GameAttributes.Resource_Max_Bonus, 6] -= 15f; User.Attributes.BroadcastChangedIfRevealed(); } } @@ -2221,14 +2220,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { UsePrimaryResource(EvalTag(PowerKeys.ResourceCost)); //StartCooldown(EvalTag(PowerKeys.CooldownTime)); - User.Attributes[GameAttribute.Skill_Charges, 129217] -= 1; + User.Attributes[GameAttributes.Skill_Charges, 129217] -= 1; var old_turret = User.World.GetActorsBySNO(RuneSelect(ActorSno._dh_sentry, ActorSno._dh_sentry_tether, ActorSno._dh_sentry_addsduration, ActorSno._dh_sentry_addsmissiles, ActorSno._dh_sentry_addsheals, ActorSno._dh_sentry_addsshield)); //if (old_turret.Count > 0) int CountByHero = 0; foreach (var ot in old_turret) - if (ot.Attributes[GameAttribute.Known_By_Owner] == (User as Player).PlayerIndex) + if (ot.Attributes[GameAttributes.Known_By_Owner] == (User as Player).PlayerIndex) { CountByHero++; if (CountByHero > 1) @@ -2239,7 +2238,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations Turret.Timeout = WaitSeconds(ScriptFormula(0)); Turret.Scale = 1f; Turret.Spawn(); - Turret.Attributes[GameAttribute.Known_By_Owner] = (User as Player).PlayerIndex; + Turret.Attributes[GameAttributes.Known_By_Owner] = (User as Player).PlayerIndex; if (Rune_A > 0) User.AddRopeEffect(154660, Turret); @@ -2282,7 +2281,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (Actor ally in Turret.GetActorsInRange(10f)) { if (ally is Player) - (ally as Player).AddHP((ally.Attributes[GameAttribute.Hitpoints_Max_Total] * ScriptFormula(11)) / ScriptFormula(1)); + (ally as Player).AddHP((ally.Attributes[GameAttributes.Hitpoints_Max_Total] * ScriptFormula(11)) / ScriptFormula(1)); } if (Rune_E > 0) @@ -2307,13 +2306,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(10); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(10); return true; } public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(10); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(10); } } @@ -2333,11 +2332,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations else { Max = 2; - if(User.Attributes[GameAttribute.Skill_Charges, PowerSNO] == 3) - User.Attributes[GameAttribute.Skill_Charges, PowerSNO] = 2; + if(User.Attributes[GameAttributes.Skill_Charges, PowerSNO] == 3) + User.Attributes[GameAttributes.Skill_Charges, PowerSNO] = 2; } - if (User.Attributes[GameAttribute.Skill_Charges, PowerSNO] < Max) + if (User.Attributes[GameAttributes.Skill_Charges, PowerSNO] < Max) { if (!CoolDownStarted) { @@ -2346,7 +2345,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations Task.Delay(8100).ContinueWith(delegate { CoolDownStarted = false; - User.Attributes[GameAttribute.Skill_Charges, PowerSNO] = (int)Math.Min(User.Attributes[GameAttribute.Skill_Charges, PowerSNO] + 1, Max); + User.Attributes[GameAttributes.Skill_Charges, PowerSNO] = (int)Math.Min(User.Attributes[GameAttributes.Skill_Charges, PowerSNO] + 1, Max); User.Attributes.BroadcastChangedIfRevealed(); }); } @@ -2411,10 +2410,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_E > 0) //Ferret Companion { - float radius = User.Attributes[GameAttribute.Gold_PickUp_Radius]; - User.Attributes[GameAttribute.Gold_PickUp_Radius] = ScriptFormula(6); + float radius = User.Attributes[GameAttributes.Gold_PickUp_Radius]; + User.Attributes[GameAttributes.Gold_PickUp_Radius] = ScriptFormula(6); (User as Player).VacuumPickup(); - User.Attributes[GameAttribute.Gold_PickUp_Radius] = radius; + User.Attributes[GameAttributes.Gold_PickUp_Radius] = radius; yield break; } @@ -2450,8 +2449,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += 0.3f; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += 0.3f; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += 0.3f; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += 0.3f; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2459,8 +2458,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= 0.3f; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= 0.3f; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= 0.3f; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= 0.3f; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2478,7 +2477,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; Target.WalkSpeed *= 0.2f; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += 0.8f; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += 0.8f; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2486,7 +2485,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); Target.WalkSpeed /= 0.2f; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 0.8f; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 0.8f; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2515,7 +2514,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Init() { base.Init(); - RegenValue = LifeRegen(User.Attributes[GameAttribute.Level]); + RegenValue = LifeRegen(User.Attributes[GameAttributes.Level]); } public override bool Apply() { @@ -2524,46 +2523,46 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (companion != null) return false; if (User.World == null) return false; var minionID = ActorSno._dh_companion; //Raven - if (User.Attributes[GameAttribute.Rune_A, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) + if (User.Attributes[GameAttributes.Rune_A, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) minionID = ActorSno._dh_companion_spider; //Spider, slow on hit done in HitPayload - if (User.Attributes[GameAttribute.Rune_B, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) + if (User.Attributes[GameAttributes.Rune_B, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) minionID = ActorSno._dh_companion_boar; //Boar - if (User.Attributes[GameAttribute.Rune_C, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) + if (User.Attributes[GameAttributes.Rune_C, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) minionID = ActorSno._dh_companion_runec; //Wolf - if (User.Attributes[GameAttribute.Rune_D, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) + if (User.Attributes[GameAttributes.Rune_D, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) minionID = ActorSno._dh_companion_runed; //Bat - if (User.Attributes[GameAttribute.Rune_E, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) + if (User.Attributes[GameAttributes.Rune_E, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) minionID = ActorSno._dh_companion_runee; //Ferret companion = new CompanionMinion(World, this, minionID); companion.Brain.DeActivate(); companion.Position = RandomDirection(User.Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - companion.Attributes[GameAttribute.Untargetable] = true; + companion.Attributes[GameAttributes.Untargetable] = true; companion.EnterWorld(companion.Position); //Logger.Debug("companion spawned"); (companion as Minion).Brain.Activate(); - companion.Attributes[GameAttribute.Untargetable] = false; + companion.Attributes[GameAttributes.Untargetable] = false; companion.Attributes.BroadcastChangedIfRevealed(); - if (User.Attributes[GameAttribute.Rune_B, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Boar + if (User.Attributes[GameAttributes.Rune_B, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Boar { - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += RegenValue; - User.Attributes[GameAttribute.Resistance_Percent_All] += 0.2f; + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += RegenValue; + User.Attributes[GameAttributes.Resistance_Percent_All] += 0.2f; } - if (User.Attributes[GameAttribute.Rune_D, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Bat + if (User.Attributes[GameAttributes.Rune_D, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Bat { - User.Attributes[GameAttribute.Resource_Regen_Per_Second, 5] += 1f; + User.Attributes[GameAttributes.Resource_Regen_Per_Second, 5] += 1f; } - if (User.Attributes[GameAttribute.Rune_E, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Ferret + if (User.Attributes[GameAttributes.Rune_E, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Ferret { - User.Attributes[GameAttribute.Gold_Find] += 0.1f; - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += 0.1f; + User.Attributes[GameAttributes.Gold_Find] += 0.1f; + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += 0.1f; } - User.Attributes[GameAttribute.Free_Cast, SkillsSystem.Skills.DemonHunter.Discipline.Companion] = 1; + User.Attributes[GameAttributes.Free_Cast, SkillsSystem.Skills.DemonHunter.Discipline.Companion] = 1; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -2579,24 +2578,24 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations companion = null; } - if (User.Attributes[GameAttribute.Rune_B, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Boar + if (User.Attributes[GameAttributes.Rune_B, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Boar { - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] -= RegenValue; - User.Attributes[GameAttribute.Resistance_Percent_All] -= 0.2f; + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] -= RegenValue; + User.Attributes[GameAttributes.Resistance_Percent_All] -= 0.2f; } - if (User.Attributes[GameAttribute.Rune_D, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Bat + if (User.Attributes[GameAttributes.Rune_D, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Bat { - User.Attributes[GameAttribute.Resource_Regen_Per_Second, 5] -= 1f; + User.Attributes[GameAttributes.Resource_Regen_Per_Second, 5] -= 1f; } - if (User.Attributes[GameAttribute.Rune_E, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Ferret + if (User.Attributes[GameAttributes.Rune_E, SkillsSystem.Skills.DemonHunter.Discipline.Companion] > 0) //Ferret { - User.Attributes[GameAttribute.Gold_Find] -= 0.1f; - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= 0.1f; + User.Attributes[GameAttributes.Gold_Find] -= 0.1f; + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= 0.1f; } - User.Attributes[GameAttribute.Free_Cast, SkillsSystem.Skills.DemonHunter.Discipline.Companion] = 0; + User.Attributes[GameAttributes.Free_Cast, SkillsSystem.Skills.DemonHunter.Discipline.Companion] = 0; User.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Monk.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Monk.cs index 7f4cfdf..e62a88c 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Monk.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Monk.cs @@ -3,7 +3,6 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.Math; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; @@ -11,11 +10,9 @@ using DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Effect; using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations @@ -138,8 +135,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= StackCount * ScriptFormula(13); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= StackCount * ScriptFormula(13); + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= StackCount * ScriptFormula(13); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= StackCount * ScriptFormula(13); Target.Attributes.BroadcastChangedIfRevealed(); } @@ -157,8 +154,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations private void _AddAmp() { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += ScriptFormula(13); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += ScriptFormula(13); + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += ScriptFormula(13); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += ScriptFormula(13); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -175,7 +172,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(22); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(22); Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -183,7 +180,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(22); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(22); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -208,7 +205,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations float facingAngle = MovementHelpers.GetFacingAngle(User, Target); var _mover = new ActorMover(User); - float speed = Target.Attributes[GameAttribute.Running_Rate_Total] * 9f; + float speed = Target.Attributes[GameAttributes.Running_Rate_Total] * 9f; _mover.Move(Target.Position, 3.5f, new ACDTranslateNormalMessage { SnapFacing = true, @@ -400,7 +397,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] -= StackCount * ScriptFormula(18); + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] -= StackCount * ScriptFormula(18); Target.Attributes.BroadcastChangedIfRevealed(); } @@ -418,7 +415,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations private void _AddAmp() { - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] += ScriptFormula(18); + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] += ScriptFormula(18); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -599,8 +596,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; Target.WalkSpeed *= (1f - Percentage); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= Percentage; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -609,8 +606,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); Target.WalkSpeed /= (1f - Percentage); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += Percentage; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= Percentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -694,7 +691,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Bleeding] = true; + Target.Attributes[GameAttributes.Bleeding] = true; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -703,7 +700,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - Target.Attributes[GameAttribute.Bleeding] = false; + Target.Attributes[GameAttributes.Bleeding] = false; Target.Attributes.BroadcastChangedIfRevealed(); } @@ -744,7 +741,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { AttackPayload attack = new AttackPayload(this); attack.Targets = targets; - attack.AddDamage(ScriptFormula(9) * Target.Attributes[GameAttribute.Hitpoints_Max_Total], 0f, DamageType.Physical); + attack.AddDamage(ScriptFormula(9) * Target.Attributes[GameAttributes.Hitpoints_Max_Total], 0f, DamageType.Physical); if (Rune_D > 0) //Strong Spirit { @@ -776,7 +773,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Amplify_Damage_Percent] += ScriptFormula(15); + Target.Attributes[GameAttributes.Amplify_Damage_Percent] += ScriptFormula(15); Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -785,7 +782,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Amplify_Damage_Percent] -= ScriptFormula(15); + Target.Attributes[GameAttributes.Amplify_Damage_Percent] -= ScriptFormula(15); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -806,7 +803,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Bleeding] = true; + Target.Attributes[GameAttributes.Bleeding] = true; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -815,7 +812,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - Target.Attributes[GameAttribute.Bleeding] = false; + Target.Attributes[GameAttributes.Bleeding] = false; Target.Attributes.BroadcastChangedIfRevealed(); } @@ -962,7 +959,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_D > 0) //Inner Storm { - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] += ScriptFormula(23); + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] += ScriptFormula(23); Target.Attributes.BroadcastChangedIfRevealed(); } return true; @@ -1010,7 +1007,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_D > 0) { - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] -= ScriptFormula(23); + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] -= ScriptFormula(23); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1197,7 +1194,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; // dash speed seems to always be actor speed * 10 - float speed = Target.Attributes[GameAttribute.Running_Rate_Total] * 9f; + float speed = Target.Attributes[GameAttributes.Running_Rate_Total] * 9f; Target.TranslateFacing(_destination, true); _mover = new ActorMover(Target); @@ -1212,7 +1209,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations // make sure buff timeout is big enough otherwise the client will sometimes ignore the visual effects. Timeout = _mover.ArrivalTime; - Target.Attributes[GameAttribute.Hidden] = true; + Target.Attributes[GameAttributes.Hidden] = true; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1220,7 +1217,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hidden] = false; + Target.Attributes[GameAttributes.Hidden] = false; Target.Attributes.BroadcastChangedIfRevealed(); } @@ -1295,8 +1292,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= StackCount * ScriptFormula(7); - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] -= StackCount * ScriptFormula(8); + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= StackCount * ScriptFormula(7); + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] -= StackCount * ScriptFormula(8); Target.Attributes.BroadcastChangedIfRevealed(); } @@ -1314,8 +1311,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations private void _AddAmp() { - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += ScriptFormula(7); - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] += ScriptFormula(8); + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += ScriptFormula(7); + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] += ScriptFormula(8); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1336,7 +1333,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations //StartCooldown(1f); UsePrimaryResource(EvalTag(PowerKeys.ResourceCost)); - User.Attributes[GameAttribute.Skill_Charges, 312736] = Math.Max(User.Attributes[GameAttribute.Skill_Charges, 312736] - 1, 0); + User.Attributes[GameAttributes.Skill_Charges, 312736] = Math.Max(User.Attributes[GameAttributes.Skill_Charges, 312736] - 1, 0); AttackPayload dash = new AttackPayload(this); dash.Targets = GetEnemiesInBeamDirection(User.Position, TargetPosition, PowerMath.Distance2D(User.Position, TargetPosition), 5f); @@ -1386,7 +1383,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; // dash speed seems to always be actor speed * 10 - float speed = Target.Attributes[GameAttribute.Running_Rate_Total] * 9f; + float speed = Target.Attributes[GameAttributes.Running_Rate_Total] * 9f; Target.TranslateFacing(_destination, true); _mover = new ActorMover(Target); @@ -1475,7 +1472,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] += ScriptFormula(18); + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] += ScriptFormula(18); Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1483,7 +1480,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] -= ScriptFormula(18); + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] -= ScriptFormula(18); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1502,7 +1499,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1510,7 +1507,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1525,10 +1522,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (base.Update()) return true; - Max = (User.Attributes[GameAttribute.Rune_D, 312736] > 0) ? 3 : 2; + Max = (User.Attributes[GameAttributes.Rune_D, 312736] > 0) ? 3 : 2; - if (User.Attributes[GameAttribute.Skill_Charges, PowerSNO] < Max) + if (User.Attributes[GameAttributes.Skill_Charges, PowerSNO] < Max) { if (!CoolDownStarted) { @@ -1537,7 +1534,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations Task.Delay(6100).ContinueWith(delegate { CoolDownStarted = false; - User.Attributes[GameAttribute.Skill_Charges, PowerSNO] = Math.Min(User.Attributes[GameAttribute.Skill_Charges, PowerSNO] + 1, Max); + User.Attributes[GameAttributes.Skill_Charges, PowerSNO] = Math.Min(User.Attributes[GameAttributes.Skill_Charges, PowerSNO] + 1, Max); User.Attributes.BroadcastChangedIfRevealed(); }); } @@ -1568,10 +1565,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (base.Update()) return true; - Max = (User.Attributes[GameAttribute.Rune_D, 312736] > 0) ? 3 : 2; + Max = (User.Attributes[GameAttributes.Rune_D, 312736] > 0) ? 3 : 2; - if (User.Attributes[GameAttribute.Skill_Charges, PowerSNO] < Max) + if (User.Attributes[GameAttributes.Skill_Charges, PowerSNO] < Max) { if (!CoolDownStarted) { @@ -1580,7 +1577,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations Task.Delay(6100).ContinueWith(delegate { CoolDownStarted = false; - User.Attributes[GameAttribute.Skill_Charges, PowerSNO] = Math.Min(User.Attributes[GameAttribute.Skill_Charges, PowerSNO] + 1, Max); + User.Attributes[GameAttributes.Skill_Charges, PowerSNO] = Math.Min(User.Attributes[GameAttributes.Skill_Charges, PowerSNO] + 1, Max); //User.Attributes[GameAttribute.Next_Charge_Gained_time, 75301] = 0; User.Attributes.BroadcastChangedIfRevealed(); }); @@ -1625,7 +1622,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] += ScriptFormula(2); + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] += ScriptFormula(2); Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1633,7 +1630,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] -= ScriptFormula(2); + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] -= ScriptFormula(2); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1663,25 +1660,25 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] += ScriptFormula(2); + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] += ScriptFormula(2); - if (Target.Attributes[GameAttribute.Rune_A, 375049] > 0) //Backlash + if (Target.Attributes[GameAttributes.Rune_A, 375049] > 0) //Backlash Backlash = true; - if (Target.Attributes[GameAttribute.Rune_B, 375049] > 0) //Perseverance - Target.Attributes[GameAttribute.CrowdControl_Reduction] += ScriptFormula(4); + if (Target.Attributes[GameAttributes.Rune_B, 375049] > 0) //Perseverance + Target.Attributes[GameAttributes.CrowdControl_Reduction] += ScriptFormula(4); - if (Target.Attributes[GameAttribute.Rune_C, 375049] > 0) //Hard Target - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(5); + if (Target.Attributes[GameAttributes.Rune_C, 375049] > 0) //Hard Target + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(5); - if (Target.Attributes[GameAttribute.Rune_D, 375049] > 0) //Wind through the Reeds - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(6); + if (Target.Attributes[GameAttributes.Rune_D, 375049] > 0) //Wind through the Reeds + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(6); - if (Target.Attributes[GameAttribute.Rune_E, 375049] > 0) //Divine Protection + if (Target.Attributes[GameAttributes.Rune_E, 375049] > 0) //Divine Protection DivineShield = true; if ((Target as Player).SkillSet.HasPassive(156467)) //ChantOfResonance (monk) - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] += 2f; + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] += 2f; Target.Attributes.BroadcastChangedIfRevealed(); @@ -1692,24 +1689,24 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] -= ScriptFormula(2); + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] -= ScriptFormula(2); - if (Target.Attributes[GameAttribute.Rune_B, 375049] > 0) - Target.Attributes[GameAttribute.CrowdControl_Reduction] -= ScriptFormula(4); + if (Target.Attributes[GameAttributes.Rune_B, 375049] > 0) + Target.Attributes[GameAttributes.CrowdControl_Reduction] -= ScriptFormula(4); - if (Target.Attributes[GameAttribute.Rune_C, 375049] > 0) - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(5); + if (Target.Attributes[GameAttributes.Rune_C, 375049] > 0) + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(5); - if (Target.Attributes[GameAttribute.Rune_D, 375049] > 0) - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(6); + if (Target.Attributes[GameAttributes.Rune_D, 375049] > 0) + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(6); if ((Target as Player).SkillSet.HasPassive(156467)) //ChantOfResonance (monk) - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] -= 2f; + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] -= 2f; if (_unityDamageBonus > 0) { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= _unityDamageBonus; _unityDamageBonus = 0f; } Target.Attributes.BroadcastChangedIfRevealed(); @@ -1731,9 +1728,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (Actor ally in GetAlliesInRadius(Target.Position, ScriptFormula(0)).Actors) { if (!HasBuff(ally)) - AddBuff(ally, new EvasionAllyBuff(User, Target.Attributes[GameAttribute.Rune_B, 375049] > 0, - Target.Attributes[GameAttribute.Rune_C, 375049] > 0, - Target.Attributes[GameAttribute.Rune_D, 375049] > 0, + AddBuff(ally, new EvasionAllyBuff(User, Target.Attributes[GameAttributes.Rune_B, 375049] > 0, + Target.Attributes[GameAttributes.Rune_C, 375049] > 0, + Target.Attributes[GameAttributes.Rune_D, 375049] > 0, WaitSeconds(1.1f))); else ally.World.BuffManager.GetFirstBuff(ally).Extend(60); } @@ -1759,13 +1756,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if ((Target as Player).SkillSet.HasPassive(368899) && _unityDamageBonus != (0.05f * Target.GetActorsInRange(ScriptFormula(0)).Count())) //Unity { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= _unityDamageBonus; _unityDamageBonus = 0.05f * Target.GetActorsInRange(ScriptFormula(0)).Count(); - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += _unityDamageBonus; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1778,8 +1775,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Target == Target && payload is HitPayload) { if (DivineShield) //Divine Protection - if (Target.Attributes[GameAttribute.Hitpoints_Cur] < - Target.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.25f) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] < + Target.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.25f) { if (!HasBuff(Target)) AddBuff(Target, new ArmorBuff()); } @@ -1807,11 +1804,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] += 0.17f; + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] += 0.17f; - if (Perseverance) Target.Attributes[GameAttribute.CrowdControl_Reduction] += 0.2f; - if (HardTarget) Target.Attributes[GameAttribute.Armor_Bonus_Percent] += 0.2f; - if (Wind) Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += 0.1f; + if (Perseverance) Target.Attributes[GameAttributes.CrowdControl_Reduction] += 0.2f; + if (HardTarget) Target.Attributes[GameAttributes.Armor_Bonus_Percent] += 0.2f; + if (Wind) Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += 0.1f; Target.Attributes.BroadcastChangedIfRevealed(); if (Target is Player) @@ -1821,8 +1818,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if ((Caster as Player).SkillSet.HasPassive(368899)) //Unity { _unityBonus = true; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += 0.05f; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += 0.05f; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += 0.05f; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += 0.05f; Target.Attributes.BroadcastChangedIfRevealed(); } @@ -1833,16 +1830,16 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] -= 0.17f; + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] -= 0.17f; - if (Perseverance) Target.Attributes[GameAttribute.CrowdControl_Reduction] -= 0.2f; - if (HardTarget) Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= 0.2f; - if (Wind) Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= 0.1f; + if (Perseverance) Target.Attributes[GameAttributes.CrowdControl_Reduction] -= 0.2f; + if (HardTarget) Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= 0.2f; + if (Wind) Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= 0.1f; if (_unityBonus) { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= 0.05f; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= 0.05f; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= 0.05f; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= 0.05f; } Target.Attributes.BroadcastChangedIfRevealed(); // aura fade effect @@ -1951,7 +1948,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Hit_Chance] -= ScriptFormula(8); + Target.Attributes[GameAttributes.Hit_Chance] -= ScriptFormula(8); Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1959,7 +1956,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hit_Chance] += ScriptFormula(8); + Target.Attributes[GameAttributes.Hit_Chance] += ScriptFormula(8); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1976,8 +1973,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Amplify_Damage_Percent] += ScriptFormula(4); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += ScriptFormula(4); + Target.Attributes[GameAttributes.Amplify_Damage_Percent] += ScriptFormula(4); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += ScriptFormula(4); Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1985,8 +1982,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Amplify_Damage_Percent] -= ScriptFormula(4); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= ScriptFormula(4); + Target.Attributes[GameAttributes.Amplify_Damage_Percent] -= ScriptFormula(4); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= ScriptFormula(4); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1997,7 +1994,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public float Regen = 0f; public FlashIndigoBuff(TickTimer timeout) { - Regen = LifeRegen(Target.Attributes[GameAttribute.Level]); + Regen = LifeRegen(Target.Attributes[GameAttributes.Level]); Timeout = timeout; } private float LifeRegen(int level) //SF is bugged, use our own formula @@ -2009,7 +2006,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += Regen; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += Regen; Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -2018,7 +2015,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] -= Regen; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] -= Regen; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2033,13 +2030,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Team_Override] = 1; + Target.Attributes[GameAttributes.Team_Override] = 1; return true; } public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Team_Override] = 10; + Target.Attributes[GameAttributes.Team_Override] = 10; } } } @@ -2164,7 +2161,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { _damageMult = Rune_D > 0 ? 4.5f : 2.4f; //Northern Breeze _dmgType = Rune_E > 0 ? DamageType.Cold : (Rune_D > 0 ? DamageType.Holy : (Rune_A > 0 ? DamageType.Fire : DamageType.Physical)); - _damageDelay = Math.Max(1f / (User.Attributes[GameAttribute.Attacks_Per_Second_Total] * 1.3f), 0.3f); + _damageDelay = Math.Max(1f / (User.Attributes[GameAttributes.Attacks_Per_Second_Total] * 1.3f), 0.3f); _channelCost = Rune_D > 0 ? 13f : 15f; if (Rune_C > 0) _slipStream = true; //Slipstream, done in HitPayload Timeout = WaitSeconds(_damageDelay); @@ -2177,7 +2174,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_B > 0) //Tailwind { - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += 0.25f; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += 0.25f; Target.Attributes.BroadcastChangedIfRevealed(); } return true; @@ -2189,7 +2186,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_B > 0) { - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= 0.25f; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= 0.25f; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2389,8 +2386,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += ScriptFormula(9); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += ScriptFormula(9); + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += ScriptFormula(9); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += ScriptFormula(9); Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2398,8 +2395,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= ScriptFormula(9); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= ScriptFormula(9); + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= ScriptFormula(9); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= ScriptFormula(9); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2492,10 +2489,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; if ((Target as Player).SkillSet.HasPassive(156467)) //ChantOfResonance (monk) - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] += 2f; + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] += 2f; - if (Target.Attributes[GameAttribute.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Transgression - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += ScriptFormula(22); + if (Target.Attributes[GameAttributes.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Transgression + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += ScriptFormula(22); Target.Attributes.BroadcastChangedIfRevealed(); @@ -2507,15 +2504,15 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); if ((Target as Player).SkillSet.HasPassive(156467)) //ChantOfResonance (monk) - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] -= 2f; + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] -= 2f; - if (Target.Attributes[GameAttribute.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= ScriptFormula(22); + if (Target.Attributes[GameAttributes.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= ScriptFormula(22); if (_unityDamageBonus > 0) { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= _unityDamageBonus; _unityDamageBonus = 0f; } Target.Attributes.BroadcastChangedIfRevealed(); @@ -2545,13 +2542,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if ((Target as Player).SkillSet.HasPassive(368899) && _unityDamageBonus != (0.05f * Target.GetActorsInRange(ScriptFormula(0)).Count())) //Unity { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= _unityDamageBonus; _unityDamageBonus = 0.05f * Target.GetActorsInRange(ScriptFormula(0)).Count(); - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += _unityDamageBonus; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2566,7 +2563,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations AttackPayload retaliate = new AttackPayload(this); retaliate.SetSingleTarget(payload.Context.User); - if (Target.Attributes[GameAttribute.Rune_A, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Retaliation + if (Target.Attributes[GameAttributes.Rune_A, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Retaliation retaliate.AddWeaponDamage(2.02f, DamageType.Fire); else retaliate.AddWeaponDamage(1.01f, DamageType.Holy); @@ -2574,15 +2571,15 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations retaliate.AutomaticHitEffects = false; //no procs and looping retaliate.Apply(); - if (Target.Attributes[GameAttribute.Rune_C, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Indignation + if (Target.Attributes[GameAttributes.Rune_C, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Indignation if (Rand.NextDouble() < 0.2f) AddBuff(payload.Context.User, new DebuffStunned(WaitSeconds(3f))); - if (Target.Attributes[GameAttribute.Rune_D, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Against All Odds + if (Target.Attributes[GameAttributes.Rune_D, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Against All Odds if (Rand.NextDouble() < 0.2f) GeneratePrimaryResource(3f); - if (Target.Attributes[GameAttribute.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Collateral Damage + if (Target.Attributes[GameAttributes.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Collateral Damage if (Rand.NextDouble() < 0.75f) { SpawnProxy(payload.Context.User.Position, WaitSeconds(1f)).PlayEffectGroup(193348); @@ -2619,19 +2616,19 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - if (Caster.Attributes[GameAttribute.Rune_A, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Retaliation + if (Caster.Attributes[GameAttributes.Rune_A, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Retaliation Retaliation = true; - if (Caster.Attributes[GameAttribute.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Transgression + if (Caster.Attributes[GameAttributes.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Transgression Transgression = true; - if (Caster.Attributes[GameAttribute.Rune_C, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Indignation + if (Caster.Attributes[GameAttributes.Rune_C, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Indignation Indignation = true; - if (Caster.Attributes[GameAttribute.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Collateral damage + if (Caster.Attributes[GameAttributes.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfRetribution] > 0) //Collateral damage Collateral = true; - if (Transgression) Target.Attributes[GameAttribute.Attacks_Per_Second_Bonus] += 0.1f; + if (Transgression) Target.Attributes[GameAttributes.Attacks_Per_Second_Bonus] += 0.1f; Target.Attributes.BroadcastChangedIfRevealed(); if (Target is Player) @@ -2641,8 +2638,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if ((Caster as Player).SkillSet.HasPassive(368899)) //Unity { _unityBonus = true; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += 0.05f; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += 0.05f; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += 0.05f; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += 0.05f; Target.Attributes.BroadcastChangedIfRevealed(); } return true; @@ -2652,12 +2649,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - if (Transgression) Target.Attributes[GameAttribute.Attacks_Per_Second_Bonus] -= 0.1f; + if (Transgression) Target.Attributes[GameAttributes.Attacks_Per_Second_Bonus] -= 0.1f; if (_unityBonus) { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= 0.05f; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= 0.05f; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= 0.05f; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= 0.05f; } Target.Attributes.BroadcastChangedIfRevealed(); } @@ -2707,11 +2704,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { UsePrimaryResource(EvalTag(PowerKeys.ResourceCost) * ((User as Player).SkillSet.HasPassive(156467) ? 0.5f : 1f)); //Chant Of Resonance - AddBuff(User, new HealingShield(User.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.3f, WaitSeconds(ScriptFormula(12)), (User as Player).SkillSet.HasPassive(156492))); + AddBuff(User, new HealingShield(User.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.3f, WaitSeconds(ScriptFormula(12)), (User as Player).SkillSet.HasPassive(156492))); foreach (Actor ally in GetAlliesInRadius(User.Position, ScriptFormula(0)).Actors) { - AddBuff(ally, new HealingShield(ally.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.3f, WaitSeconds(ScriptFormula(12)), (User as Player).SkillSet.HasPassive(156492))); + AddBuff(ally, new HealingShield(ally.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.3f, WaitSeconds(ScriptFormula(12)), (User as Player).SkillSet.HasPassive(156492))); } (User as Player).AddAchievementCounter(74987243307546, 1); @@ -2739,7 +2736,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (GuidingLight) //Guiding Light passive { - float missingHP = (User.Attributes[GameAttribute.Hitpoints_Max_Total] - User.Attributes[GameAttribute.Hitpoints_Cur]) / User.Attributes[GameAttribute.Hitpoints_Max_Total]; + float missingHP = (User.Attributes[GameAttributes.Hitpoints_Max_Total] - User.Attributes[GameAttributes.Hitpoints_Cur]) / User.Attributes[GameAttributes.Hitpoints_Max_Total]; if (!HasBuff(User)) AddBuff(User, new GuidingLightBuff(Math.Min(missingHP, 0.3f), TickTimer.WaitSeconds(World.Game, 10.0f))); } @@ -2787,8 +2784,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Init() { - Regen = 10 + 0.0125f * (float)Math.Pow(User.Attributes[GameAttribute.Level], 3); - LoH = 10 + 0.008f * (float)Math.Pow(User.Attributes[GameAttribute.Level], 3); + Regen = 10 + 0.0125f * (float)Math.Pow(User.Attributes[GameAttributes.Level], 3); + LoH = 10 + 0.008f * (float)Math.Pow(User.Attributes[GameAttributes.Level], 3); } public override bool Apply() @@ -2796,25 +2793,25 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - if (User.Attributes[GameAttribute.Rune_A, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) //Sustenance + if (User.Attributes[GameAttributes.Rune_A, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) //Sustenance Regen *= 2f; - if (User.Attributes[GameAttribute.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) //Boon of Inspiration - Target.Attributes[GameAttribute.Hitpoints_On_Hit] += LoH; + if (User.Attributes[GameAttributes.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) //Boon of Inspiration + Target.Attributes[GameAttributes.Hitpoints_On_Hit] += LoH; - if (User.Attributes[GameAttribute.Rune_C, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) //Heavenly Body - Target.Attributes[GameAttribute.Vitality_Bonus_Percent] += 0.1f; + if (User.Attributes[GameAttributes.Rune_C, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) //Heavenly Body + Target.Attributes[GameAttributes.Vitality_Bonus_Percent] += 0.1f; - if (User.Attributes[GameAttribute.Rune_D, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) //Circular Breathing - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] += ScriptFormula(7); + if (User.Attributes[GameAttributes.Rune_D, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) //Circular Breathing + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] += ScriptFormula(7); - if (User.Attributes[GameAttribute.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) //Time of Need - Target.Attributes[GameAttribute.Resistance_Percent_All] += 0.2f; + if (User.Attributes[GameAttributes.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) //Time of Need + Target.Attributes[GameAttributes.Resistance_Percent_All] += 0.2f; - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += Regen; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += Regen; if ((Target as Player).SkillSet.HasPassive(156467)) //ChantOfResonance (monk) - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] += 2f; + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] += 2f; Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -2835,9 +2832,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!HasBuff(ally)) AddBuff(ally, new CastGroupBuff(User, Regen, LoH, - User.Attributes[GameAttribute.Rune_B, 373143] > 0, - User.Attributes[GameAttribute.Rune_C, 373143] > 0, - User.Attributes[GameAttribute.Rune_E, 373143] > 0, + User.Attributes[GameAttributes.Rune_B, 373143] > 0, + User.Attributes[GameAttributes.Rune_C, 373143] > 0, + User.Attributes[GameAttributes.Rune_E, 373143] > 0, WaitSeconds(1.1f))); else ally.World.BuffManager.GetFirstBuff(ally).Extend(60); } @@ -2847,13 +2844,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if ((Target as Player).SkillSet.HasPassive(368899) && _unityDamageBonus != (0.05f * Target.GetActorsInRange(ScriptFormula(0)).Count())) //Unity { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= _unityDamageBonus; _unityDamageBonus = 0.05f * Target.GetActorsInRange(ScriptFormula(0)).Count(); - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += _unityDamageBonus; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2864,29 +2861,29 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - if (User.Attributes[GameAttribute.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) - Target.Attributes[GameAttribute.Hitpoints_On_Hit] -= LoH; + if (User.Attributes[GameAttributes.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) + Target.Attributes[GameAttributes.Hitpoints_On_Hit] -= LoH; - if (User.Attributes[GameAttribute.Rune_C, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) - Target.Attributes[GameAttribute.Vitality_Bonus_Percent] -= 0.1f; + if (User.Attributes[GameAttributes.Rune_C, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) + Target.Attributes[GameAttributes.Vitality_Bonus_Percent] -= 0.1f; - if (User.Attributes[GameAttribute.Rune_D, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] -= ScriptFormula(7); + if (User.Attributes[GameAttributes.Rune_D, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] -= ScriptFormula(7); - if (User.Attributes[GameAttribute.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) - Target.Attributes[GameAttribute.Resistance_Percent_All] -= 0.2f; + if (User.Attributes[GameAttributes.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfHealing] > 0) + Target.Attributes[GameAttributes.Resistance_Percent_All] -= 0.2f; if ((Target as Player).SkillSet.HasPassive(156467)) //ChantOfResonance (monk) - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] -= 2f; + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] -= 2f; if (_unityDamageBonus > 0) { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= _unityDamageBonus; _unityDamageBonus = 0f; } - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] -= Regen; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] -= Regen; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2918,11 +2915,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - if (BoonOfInspiration) Target.Attributes[GameAttribute.Hitpoints_On_Hit] += LoH; - if (HeavenlyBody) Target.Attributes[GameAttribute.Vitality_Bonus_Percent] += 0.1f; - if (TimeOfNeed) Target.Attributes[GameAttribute.Resistance_Percent_All] += 0.2f; + if (BoonOfInspiration) Target.Attributes[GameAttributes.Hitpoints_On_Hit] += LoH; + if (HeavenlyBody) Target.Attributes[GameAttributes.Vitality_Bonus_Percent] += 0.1f; + if (TimeOfNeed) Target.Attributes[GameAttributes.Resistance_Percent_All] += 0.2f; - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += Regen; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += Regen; Target.Attributes.BroadcastChangedIfRevealed(); if (Target is Player) @@ -2932,8 +2929,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if ((Caster as Player).SkillSet.HasPassive(368899)) //Unity { _unityBonus = true; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += 0.05f; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += 0.05f; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += 0.05f; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += 0.05f; Target.Attributes.BroadcastChangedIfRevealed(); } return true; @@ -2943,16 +2940,16 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - if (BoonOfInspiration) Target.Attributes[GameAttribute.Hitpoints_On_Hit] -= LoH; - if (HeavenlyBody) Target.Attributes[GameAttribute.Vitality_Bonus_Percent] -= 0.1f; - if (TimeOfNeed) Target.Attributes[GameAttribute.Resistance_Percent_All] -= 0.2f; + if (BoonOfInspiration) Target.Attributes[GameAttributes.Hitpoints_On_Hit] -= LoH; + if (HeavenlyBody) Target.Attributes[GameAttributes.Vitality_Bonus_Percent] -= 0.1f; + if (TimeOfNeed) Target.Attributes[GameAttributes.Resistance_Percent_All] -= 0.2f; - Target.Attributes[GameAttribute.Hitpoints_Regen_Bonus_Percent] -= Regen; + Target.Attributes[GameAttributes.Hitpoints_Regen_Bonus_Percent] -= Regen; if (_unityBonus) { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= 0.05f; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= 0.05f; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= 0.05f; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= 0.05f; } Target.Attributes.BroadcastChangedIfRevealed(); } @@ -3066,8 +3063,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Init() { base.Init(); - RedAmount = User.Attributes[GameAttribute.Rune_A, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0 ? 0.16f : 0.1f; - Annihilation = User.Attributes[GameAttribute.Rune_D, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0; + RedAmount = User.Attributes[GameAttributes.Rune_A, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0 ? 0.16f : 0.1f; + Annihilation = User.Attributes[GameAttributes.Rune_D, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0; } public override bool Apply() @@ -3076,7 +3073,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; if ((User as Player).SkillSet.HasPassive(156467)) //ChantOfResonance (monk) { - User.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] += 2f; + User.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] += 2f; User.Attributes.BroadcastChangedIfRevealed(); } return true; @@ -3098,7 +3095,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations AddBuff(Enemy, new DeBuff(RedAmount, Annihilation, WaitSeconds(1.1f))); else Enemy.World.BuffManager.GetFirstBuff(Enemy).Extend(60); - if (User.Attributes[GameAttribute.Rune_C, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0) //Dishearten + if (User.Attributes[GameAttributes.Rune_C, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0) //Dishearten { if (!HasBuff(Enemy)) AddBuff(Enemy, new DisheartenDebuff(0.8f, WaitSeconds(1f))); @@ -3111,13 +3108,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if ((Target as Player).SkillSet.HasPassive(368899) && _unityDamageBonus != (0.05f * Target.GetActorsInRange(ScriptFormula(0)).Count())) //Unity { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= _unityDamageBonus; _unityDamageBonus = 0.05f * Target.GetActorsInRange(ScriptFormula(0)).Count; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += _unityDamageBonus; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -3129,13 +3126,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); if ((Target as Player).SkillSet.HasPassive(156467)) //ChantOfResonance (monk) { - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] -= 2f; + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] -= 2f; Target.Attributes.BroadcastChangedIfRevealed(); } if (_unityDamageBonus > 0) { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= _unityDamageBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= _unityDamageBonus; _unityDamageBonus = 0f; } } @@ -3162,8 +3159,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - if (User.Attributes[GameAttribute.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0) //Intimidation - Target.Attributes[GameAttribute.Damage_Done_Reduction_Percent] += ScriptFormula(10); + if (User.Attributes[GameAttributes.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0) //Intimidation + Target.Attributes[GameAttributes.Damage_Done_Reduction_Percent] += ScriptFormula(10); //base effect done in HitPayload Target.Attributes.BroadcastChangedIfRevealed(); @@ -3174,7 +3171,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (base.Update()) return true; - if (User.Attributes[GameAttribute.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0) //Submission + if (User.Attributes[GameAttributes.Rune_B, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0) //Submission { if (_damageTimer == null || _damageTimer.TimedOut) { @@ -3193,8 +3190,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - if (User.Attributes[GameAttribute.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0) - Target.Attributes[GameAttribute.Damage_Done_Reduction_Percent] -= ScriptFormula(10); + if (User.Attributes[GameAttributes.Rune_E, SkillsSystem.Skills.Monk.Mantras.MantraOfConviction] > 0) + Target.Attributes[GameAttributes.Damage_Done_Reduction_Percent] -= ScriptFormula(10); Target.Attributes.BroadcastChangedIfRevealed(); } @@ -3223,11 +3220,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } public override bool Apply() { - if (!base.Apply() || Target.Attributes[GameAttribute.Immunity] == true) + if (!base.Apply() || Target.Attributes[GameAttributes.Immunity] == true) return false; Target.WalkSpeed *= (1f - Percentage); - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); if (Target is Player) @@ -3244,7 +3241,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); Target.WalkSpeed /= (1f - Percentage); - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -3264,7 +3261,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -3273,7 +3270,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -3301,7 +3298,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (Actor ally in GetAlliesInRadius(User.Position, ScriptFormula(12)).Actors) { if (!HasBuff(ally)) - AddBuff(ally, new SerenityAlliesBuff(User, ally.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.4f, WaitSeconds(ScriptFormula(11)), true, (User as Player).SkillSet.HasPassive(156492))); + AddBuff(ally, new SerenityAlliesBuff(User, ally.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.4f, WaitSeconds(ScriptFormula(11)), true, (User as Player).SkillSet.HasPassive(156492))); } yield break; @@ -3328,8 +3325,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { } - Target.Attributes[GameAttribute.Gethit_Immune] = true; - Target.Attributes[GameAttribute.Immunity] = true; + Target.Attributes[GameAttributes.Gethit_Immune] = true; + Target.Attributes[GameAttributes.Immunity] = true; Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -3362,8 +3359,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { } - Target.Attributes[GameAttribute.Gethit_Immune] = false; - Target.Attributes[GameAttribute.Immunity] = false; + Target.Attributes[GameAttributes.Gethit_Immune] = false; + Target.Attributes[GameAttributes.Immunity] = false; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -3396,7 +3393,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (GuidingLight) //Guiding Light passive { - float missingHP = (Target.Attributes[GameAttribute.Hitpoints_Max_Total] - User.Attributes[GameAttribute.Hitpoints_Cur]) / Target.Attributes[GameAttribute.Hitpoints_Max_Total]; + float missingHP = (Target.Attributes[GameAttributes.Hitpoints_Max_Total] - User.Attributes[GameAttributes.Hitpoints_Cur]) / Target.Attributes[GameAttributes.Hitpoints_Max_Total]; if (!HasBuff(Target)) AddBuff(Target, new GuidingLightBuff(Math.Min(missingHP, 0.3f), TickTimer.WaitSeconds(World.Game, 10.0f))); } @@ -3459,10 +3456,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations yield return (WaitSeconds(0.3f)); } - AddBuff(User, new ShieldBuff(User.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.4f, WaitSeconds(ScriptFormula(14)), (User as Player).SkillSet.HasPassive(156492))); + AddBuff(User, new ShieldBuff(User.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.4f, WaitSeconds(ScriptFormula(14)), (User as Player).SkillSet.HasPassive(156492))); foreach (Actor ally in GetAlliesInRadius(User.Position, ScriptFormula(1)).Actors) { - AddBuff(ally, new ShieldBuff(ally.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.4f, WaitSeconds(ScriptFormula(14)), (User as Player).SkillSet.HasPassive(156492))); + AddBuff(ally, new ShieldBuff(ally.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.4f, WaitSeconds(ScriptFormula(14)), (User as Player).SkillSet.HasPassive(156492))); } } @@ -3534,7 +3531,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (GuidingLight) //Guiding Light passive { - float missingHP = (User.Attributes[GameAttribute.Hitpoints_Max_Total] - User.Attributes[GameAttribute.Hitpoints_Cur]) / User.Attributes[GameAttribute.Hitpoints_Max_Total]; + float missingHP = (User.Attributes[GameAttributes.Hitpoints_Max_Total] - User.Attributes[GameAttributes.Hitpoints_Cur]) / User.Attributes[GameAttributes.Hitpoints_Max_Total]; if (!HasBuff(User)) AddBuff(User, new GuidingLightBuff(Math.Min(missingHP, 0.3f), TickTimer.WaitSeconds(World.Game, 10.0f))); } @@ -3578,8 +3575,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; Target.WalkSpeed *= (1f - SlowPercentage); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= SlowPercentage; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += SlowPercentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= SlowPercentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += SlowPercentage; Target.Attributes.BroadcastChangedIfRevealed(); if (Target is Player) @@ -3596,8 +3593,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); Target.WalkSpeed /= (1f - SlowPercentage); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += SlowPercentage; - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= SlowPercentage; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += SlowPercentage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= SlowPercentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -3764,7 +3761,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Init() { base.Init(); - RegenValue = LifeRegen(User.Attributes[GameAttribute.Level]); + RegenValue = LifeRegen(User.Attributes[GameAttributes.Level]); } public override bool Apply() { @@ -3777,45 +3774,45 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var allys = gender == 2 ? femaleAllys : maleAllys; AllyId = allys[0]; - if (User.Attributes[GameAttribute.Rune_A, 0x00058676] > 0) //Crimson + if (User.Attributes[GameAttributes.Rune_A, 0x00058676] > 0) //Crimson AllyId = allys[1]; - if (User.Attributes[GameAttribute.Rune_B, 0x00058676] > 0) //Alabaster + if (User.Attributes[GameAttributes.Rune_B, 0x00058676] > 0) //Alabaster AllyId = allys[2]; - if (User.Attributes[GameAttribute.Rune_C, 0x00058676] > 0) //Obsidian + if (User.Attributes[GameAttributes.Rune_C, 0x00058676] > 0) //Obsidian AllyId = allys[3]; - if (User.Attributes[GameAttribute.Rune_D, 0x00058676] > 0) //Golden + if (User.Attributes[GameAttributes.Rune_D, 0x00058676] > 0) //Golden AllyId = allys[4]; - if (User.Attributes[GameAttribute.Rune_E, 0x00058676] > 0) //Indigo + if (User.Attributes[GameAttributes.Rune_E, 0x00058676] > 0) //Indigo AllyId = allys[5]; ally = new MysticAllyMinion(World, this, AllyId); ally.Brain.DeActivate(); ally.Position = RandomDirection(User.Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - ally.Attributes[GameAttribute.Untargetable] = true; + ally.Attributes[GameAttributes.Untargetable] = true; ally.EnterWorld(ally.Position); ally.PlayActionAnimation(AnimationSno.mystically_female_spawn2); (ally as Minion).Brain.Activate(); - ally.Attributes[GameAttribute.Untargetable] = false; + ally.Attributes[GameAttributes.Untargetable] = false; ally.Attributes.BroadcastChangedIfRevealed(); - if (User.Attributes[GameAttribute.Rune_A, 0x00058676] > 0) //Fire Ally + if (User.Attributes[GameAttributes.Rune_A, 0x00058676] > 0) //Fire Ally { - User.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += 0.1f; - User.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += 0.1f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += 0.1f; + User.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += 0.1f; } - if (User.Attributes[GameAttribute.Rune_B, 0x00058676] > 0) //Water Ally + if (User.Attributes[GameAttributes.Rune_B, 0x00058676] > 0) //Water Ally WaterAlly = true; //done in HitPayload - if (User.Attributes[GameAttribute.Rune_C, 0x00058676] > 0) //Earth Ally - User.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus] += 0.2f; + if (User.Attributes[GameAttributes.Rune_C, 0x00058676] > 0) //Earth Ally + User.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus] += 0.2f; - if (User.Attributes[GameAttribute.Rune_D, 0x00058676] > 0) //Air Ally - User.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] += 2f; + if (User.Attributes[GameAttributes.Rune_D, 0x00058676] > 0) //Air Ally + User.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] += 2f; - if (User.Attributes[GameAttribute.Rune_E, 0x00058676] > 0) //Enduring Ally - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += RegenValue; + if (User.Attributes[GameAttributes.Rune_E, 0x00058676] > 0) //Enduring Ally + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += RegenValue; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -3825,20 +3822,20 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - if (User.Attributes[GameAttribute.Rune_A, 0x00058676] > 0) + if (User.Attributes[GameAttributes.Rune_A, 0x00058676] > 0) { - User.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= 0.1f; - User.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= 0.1f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= 0.1f; + User.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= 0.1f; } - if (User.Attributes[GameAttribute.Rune_C, 0x00058676] > 0) - User.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus] -= 0.2f; + if (User.Attributes[GameAttributes.Rune_C, 0x00058676] > 0) + User.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus] -= 0.2f; - if (User.Attributes[GameAttribute.Rune_D, 0x00058676] > 0) - User.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] -= 2f; + if (User.Attributes[GameAttributes.Rune_D, 0x00058676] > 0) + User.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] -= 2f; - if (User.Attributes[GameAttribute.Rune_E, 0x00058676] > 0) - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] -= RegenValue; + if (User.Attributes[GameAttributes.Rune_E, 0x00058676] > 0) + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] -= RegenValue; User.Attributes.BroadcastChangedIfRevealed(); @@ -3861,12 +3858,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations ally = new MysticAllyMinion(World, this, AllyId); ally.Brain.DeActivate(); ally.Position = RandomDirection(User.Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - ally.Attributes[GameAttribute.Untargetable] = true; + ally.Attributes[GameAttributes.Untargetable] = true; ally.EnterWorld(ally.Position); ally.PlayActionAnimation(AnimationSno.mystically_female_spawn2); (ally as Minion).Brain.Activate(); - ally.Attributes[GameAttribute.Untargetable] = false; + ally.Attributes[GameAttributes.Untargetable] = false; ally.Attributes.BroadcastChangedIfRevealed(); } } @@ -3925,7 +3922,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] += ScriptFormula(28); + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] += ScriptFormula(28); Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -3933,7 +3930,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] -= ScriptFormula(28); + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] -= ScriptFormula(28); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -3973,17 +3970,17 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_A > 0) DesertShroud = true; //Desert Shroud, done in HitPayload - User.Attributes[GameAttribute.PowerBonusAttackRadius, 0x00017713] = 20f; //Deadly Reach - User.Attributes[GameAttribute.PowerBonusAttackRadius, 0x00017837] = 20f; //Crippling Wave - if (User.Attributes[GameAttribute.Rune_A, 0x00017B56] <= 0) //Way of the Hundred Fists - User.Attributes[GameAttribute.PowerBonusAttackRadius, 0x00017B56] = 15f; + User.Attributes[GameAttributes.PowerBonusAttackRadius, 0x00017713] = 20f; //Deadly Reach + User.Attributes[GameAttributes.PowerBonusAttackRadius, 0x00017837] = 20f; //Crippling Wave + if (User.Attributes[GameAttributes.Rune_A, 0x00017B56] <= 0) //Way of the Hundred Fists + User.Attributes[GameAttributes.PowerBonusAttackRadius, 0x00017B56] = 15f; - if (User.Attributes[GameAttribute.Rune_B, 0x0001B43C] <= 0 && - User.Attributes[GameAttribute.Rune_C, 0x0001B43C] <= 0) - User.Attributes[GameAttribute.PowerBonusAttackRadius, 0x0001B43C] = 20f; //Lashing Tail Kick - User.Attributes[GameAttribute.PowerBonusAttackRadius, 0x00017C30] = 20f; //Exploding Palm + if (User.Attributes[GameAttributes.Rune_B, 0x0001B43C] <= 0 && + User.Attributes[GameAttributes.Rune_C, 0x0001B43C] <= 0) + User.Attributes[GameAttributes.PowerBonusAttackRadius, 0x0001B43C] = 20f; //Lashing Tail Kick + User.Attributes[GameAttributes.PowerBonusAttackRadius, 0x00017C30] = 20f; //Exploding Palm - User.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] += 20f; + User.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] += 20f; User.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -4039,7 +4036,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Context.User == User && payload is DeathPayload) { KillStreakBonus += 0.03f; - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); } } @@ -4050,21 +4047,21 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (KillStreakBonus > 0f) { - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= KillStreakBonus; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= KillStreakBonus; KillStreakBonus = 0f; } - User.Attributes[GameAttribute.PowerBonusAttackRadius, 0x00017713] = 0f; //Deadly Reach - User.Attributes[GameAttribute.PowerBonusAttackRadius, 0x00017837] = 0f; //Crippling Wave - if (User.Attributes[GameAttribute.Rune_A, 0x00017B56] <= 0) //Way of the Hundred Fists - User.Attributes[GameAttribute.PowerBonusAttackRadius, 0x00017B56] = 0f; + User.Attributes[GameAttributes.PowerBonusAttackRadius, 0x00017713] = 0f; //Deadly Reach + User.Attributes[GameAttributes.PowerBonusAttackRadius, 0x00017837] = 0f; //Crippling Wave + if (User.Attributes[GameAttributes.Rune_A, 0x00017B56] <= 0) //Way of the Hundred Fists + User.Attributes[GameAttributes.PowerBonusAttackRadius, 0x00017B56] = 0f; - if (User.Attributes[GameAttribute.Rune_B, 0x0001B43C] <= 0 && - User.Attributes[GameAttribute.Rune_C, 0x0001B43C] <= 0) - User.Attributes[GameAttribute.PowerBonusAttackRadius, 0x0001B43C] = 0f; //Lashing Tail Kick - User.Attributes[GameAttribute.PowerBonusAttackRadius, 0x00017C30] = 0f; //Exploding Palm + if (User.Attributes[GameAttributes.Rune_B, 0x0001B43C] <= 0 && + User.Attributes[GameAttributes.Rune_C, 0x0001B43C] <= 0) + User.Attributes[GameAttributes.PowerBonusAttackRadius, 0x0001B43C] = 0f; //Lashing Tail Kick + User.Attributes[GameAttributes.PowerBonusAttackRadius, 0x00017C30] = 0f; //Exploding Palm - User.Attributes[GameAttribute.Resource_Regen_Per_Second, 3] -= 20f; + User.Attributes[GameAttributes.Resource_Regen_Per_Second, 3] -= 20f; User.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Necromancer.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Necromancer.cs index 872df2d..9308710 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Necromancer.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Necromancer.cs @@ -10,16 +10,12 @@ using DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Effect; using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Pet; -using DiIiS_NA.Core.Extensions; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; using DiIiS_NA.GameServer.GSSystem.ObjectsSystem; @@ -44,8 +40,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void OnChannelOpen() { WaitForSpawn = true; - WaitSeconds = 0.75f / User.Attributes[GameAttribute.Attacks_Per_Second_Total]; - EffectsPerSecond = 0.75f / User.Attributes[GameAttribute.Attacks_Per_Second_Total]; + WaitSeconds = 0.75f / User.Attributes[GameAttributes.Attacks_Per_Second_Total]; + EffectsPerSecond = 0.75f / User.Attributes[GameAttributes.Attacks_Per_Second_Total]; } public override void OnChannelClose() @@ -262,7 +258,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations GeneratePrimaryResource(12f); if (Rune_B > 0)//Execution { - if (hit.Target.Attributes[GameAttribute.Hitpoints_Cur] < (hit.Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 5)) + if (hit.Target.Attributes[GameAttributes.Hitpoints_Cur] < (hit.Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 5)) if (FastRandom.Instance.Chance(95)) WeaponDamage(hit.Target, 99999f, DamageType.Physical); } @@ -314,7 +310,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -326,14 +322,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); } return true; } public override void Remove() { - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= StackCount * 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= StackCount * 0.03f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -353,7 +349,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -365,14 +361,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); } return true; } public override void Remove() { - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= StackCount * 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= StackCount * 0.03f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -392,7 +388,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -404,14 +400,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); } return true; } public override void Remove() { - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= StackCount * 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= StackCount * 0.03f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -431,7 +427,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -443,14 +439,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); } return true; } public override void Remove() { - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= StackCount * 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= StackCount * 0.03f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -545,7 +541,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations else if (Rune_B > 0)//Pure Essence { //If HP is 100% - we restore more essence. - if (User.Attributes[GameAttribute.Hitpoints_Cur] == User.Attributes[GameAttribute.Hitpoints_Max_Total]) + if (User.Attributes[GameAttributes.Hitpoints_Cur] == User.Attributes[GameAttributes.Hitpoints_Max_Total]) GeneratePrimaryResource(5f); } else if (Rune_C > 0)//Theft of life @@ -569,7 +565,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Damage_Weapon_Percent_Total] += 0.1f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Total] += 0.1f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -581,14 +577,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Damage_Weapon_Percent_Total] += 0.1f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Total] += 0.1f; User.Attributes.BroadcastChangedIfRevealed(); } return true; } public override void Remove() { - User.Attributes[GameAttribute.Damage_Weapon_Percent_Total] -= StackCount * 0.1f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Total] -= StackCount * 0.1f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -790,7 +786,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -802,14 +798,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); } return true; } public override void Remove() { - User.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= StackCount * 0.03f; + User.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= StackCount * 0.03f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -830,7 +826,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= 0.2f; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= 0.2f; Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -847,7 +843,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } public override void Remove() { - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.2f; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.2f; Target.Attributes.BroadcastChangedIfRevealed(); base.Remove(); @@ -910,7 +906,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_B > 0) { - Count = User.Attributes[GameAttribute.Resource_Cur, (int)((Player) User).Toon.HeroTable.PrimaryResource]; + Count = User.Attributes[GameAttributes.Resource_Cur, (int)((Player) User).Toon.HeroTable.PrimaryResource]; UsePrimaryResource(Count); } else if (Rune_C > 0) @@ -940,7 +936,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations mage.Scale = 1.2f; mage.Position = RandomDirection(TargetPosition, 3f, 8f); - mage.Attributes[GameAttribute.Untargetable] = true; + mage.Attributes[GameAttributes.Untargetable] = true; mage.EnterWorld(mage.Position); yield return WaitSeconds(0.05f); @@ -954,7 +950,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations else ((MinionBrain)mage.Brain).AddPresetPower(466879); - mage.Attributes[GameAttribute.Untargetable] = false; + mage.Attributes[GameAttributes.Untargetable] = false; mage.Attributes.BroadcastChangedIfRevealed(); yield break; } @@ -1288,7 +1284,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var Point = SpawnEffect(ActorSno._p6_necro_bonespikes, TargetPosition, 0, WaitSeconds(0.2f)); Point.PlayEffect(Effect.PlayEffectGroup, RuneSelect(459954, 473926, 459954, 473907, 459954//D , 473864)); - var actors = User.Attributes[GameAttribute.Necromancer_Corpse_Free_Casting] + var actors = User.Attributes[GameAttributes.Necromancer_Corpse_Free_Casting] ? new List { User.World.SpawnMonster(ActorSno._p6_necro_corpse_flesh, TargetPosition).GlobalID } : User.GetActorsInRange(TargetPosition, 11).Where(x => x.SNO == ActorSno._p6_necro_corpse_flesh).Select(x => x.GlobalID).Take(5).ToList(); if (Rune_D > 0) @@ -1387,7 +1383,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { User.TranslateFacing(TargetPosition); Actor Flesh = null; - if (User.Attributes[GameAttribute.Necromancer_Corpse_Free_Casting] == true) + if (User.Attributes[GameAttributes.Necromancer_Corpse_Free_Casting] == true) { Flesh = User; } @@ -1398,7 +1394,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var Explosion = SpawnEffect(ActorSno._p6_necro_corpseexplosion_projectile, Flesh.Position, 0, WaitSeconds(0.2f)); Explosion.PlayEffect(Effect.PlayEffectGroup, 457183); var Proxy = SpawnProxy(Flesh.Position, new TickTimer(User.World.Game, 300)); - if (User.Attributes[GameAttribute.Necromancer_Corpse_Free_Casting] == false) + if (User.Attributes[GameAttributes.Necromancer_Corpse_Free_Casting] == false) Flesh.Destroy(); //1, 2, 3, 4 if (Rune_E > 0 || Rune_A > 0) @@ -1529,14 +1525,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Bonus_Chance_To_Be_Crit_Hit] += 0.05f; + User.Attributes[GameAttributes.Bonus_Chance_To_Be_Crit_Hit] += 0.05f; User.Attributes.BroadcastChangedIfRevealed(); return true; } public override void Remove() { - User.Attributes[GameAttribute.Bonus_Chance_To_Be_Crit_Hit] -= 0.05f; + User.Attributes[GameAttributes.Bonus_Chance_To_Be_Crit_Hit] -= 0.05f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -1556,8 +1552,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 0.10f; - User.Attributes[GameAttribute.Damage_Weapon_Percent_Total] -= 0.06f; + User.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 0.10f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Total] -= 0.06f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1569,16 +1565,16 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 0.10f; - User.Attributes[GameAttribute.Damage_Weapon_Percent_Total] -= 0.06f; + User.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 0.10f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Total] -= 0.06f; User.Attributes.BroadcastChangedIfRevealed(); } return true; } public override void Remove() { - User.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += StackCount * 0.10f; - User.Attributes[GameAttribute.Damage_Weapon_Percent_Total] += StackCount * 0.06f; + User.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += StackCount * 0.10f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Total] += StackCount * 0.06f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -1656,7 +1652,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } act.PlayEffectGroup(RuneSelect(467200, 462756, 467230, 470482, 470549, 470574)); act.Destroy(); - User.Attributes[GameAttribute.Resource_Cur, (int)((Player) User).Toon.HeroTable.PrimaryResource] += 10f; + User.Attributes[GameAttributes.Resource_Cur, (int)((Player) User).Toon.HeroTable.PrimaryResource] += 10f; if (Rune_A > 0) ((Player) User).AddPercentageHP(3); @@ -1672,7 +1668,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations else { minion.Destroy(); - User.Attributes[GameAttribute.Resource_Cur, (int)((Player) User).Toon.HeroTable.PrimaryResource] += 10f; + User.Attributes[GameAttributes.Resource_Cur, (int)((Player) User).Toon.HeroTable.PrimaryResource] += 10f; } } User.Attributes.BroadcastChangedIfRevealed(); @@ -1694,7 +1690,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] += 0.3f; + User.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] += 0.3f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1706,14 +1702,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] += 0.3f; + User.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] += 0.3f; User.Attributes.BroadcastChangedIfRevealed(); } return true; } public override void Remove() { - User.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] -= StackCount * 0.3f; + User.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] -= StackCount * 0.3f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -1733,7 +1729,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] += 0.03f; + User.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1745,7 +1741,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] += 0.03f; + User.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); } @@ -1753,7 +1749,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } public override void Remove() { - User.Attributes[GameAttribute.Hitpoints_Max_Percent_Bonus_Multiplicative] -= StackCount * 0.03f; + User.Attributes[GameAttributes.Hitpoints_Max_Percent_Bonus_Multiplicative] -= StackCount * 0.03f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -1825,7 +1821,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (((Player) User).Revived.Count < 10) { - var Temp = User.World.SpawnMonster((ActorSno)act.Attributes[GameAttribute.Necromancer_Corpse_Source_Monster_SNO], act.Position); + var Temp = User.World.SpawnMonster((ActorSno)act.Attributes[GameAttributes.Necromancer_Corpse_Source_Monster_SNO], act.Position); var RevivedTemp = new Minion(User.World, Temp.SNO, User, Temp.Tags, false, true); Temp.Destroy(); @@ -1835,12 +1831,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_D > 0) { RevivedTemp.LifeTime = TickTimer.WaitSeconds(User.World.Game, 10f); - RevivedTemp.Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 1.25f; + RevivedTemp.Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 1.25f; RevivedTemp.Attributes.BroadcastChangedIfRevealed(); } if (Rune_B > 0) { - RevivedTemp.Attributes[GameAttribute.Damage_Weapon_Min, 0] *= 1.2f; + RevivedTemp.Attributes[GameAttributes.Damage_Weapon_Min, 0] *= 1.2f; RevivedTemp.Attributes.BroadcastChangedIfRevealed(); } RevivedTemp.SetBrain(new AISystem.Brains.MinionBrain(RevivedTemp)); @@ -1848,7 +1844,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations RevivedTemp.PlayEffectGroup(RuneSelect(464739, 464900, 464872, 464954, 464859, 464746)); ((Player) User).Revived.Add(RevivedTemp); Resurrected = true; - RevivedTemp.Attributes[GameAttribute.Team_Override] = 1; + RevivedTemp.Attributes[GameAttributes.Team_Override] = 1; RevivedTemp.Attributes.BroadcastChangedIfRevealed(); } else @@ -2031,10 +2027,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!skeleton.Attributes.FixedMap.Contains(FixedAttribute.AttackSpeed)) { - var originalAttackSpeed = skeleton.Attributes[GameAttribute.Attacks_Per_Second]; + var originalAttackSpeed = skeleton.Attributes[GameAttributes.Attacks_Per_Second]; skeleton.Attributes.FixedMap.Add(FixedAttribute.AttackSpeed, - attr => attr[GameAttribute.Attacks_Per_Second] = originalAttackSpeed * 1.25f, - () => skeleton.Attributes[GameAttribute.Attacks_Per_Second] = originalAttackSpeed); + attr => attr[GameAttributes.Attacks_Per_Second] = originalAttackSpeed * 1.25f, + () => skeleton.Attributes[GameAttributes.Attacks_Per_Second] = originalAttackSpeed); skeleton.Attributes.BroadcastChangedIfRevealed(); } } @@ -2277,7 +2273,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Skill_Toggled_State, SkillsSystem.Skills.Necromancer.ExtraSkills.CommandGolem] = true; + User.Attributes[GameAttributes.Skill_Toggled_State, SkillsSystem.Skills.Necromancer.ExtraSkills.CommandGolem] = true; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -2379,7 +2375,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Damage_Weapon_Percent_Total] += 0.3f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Total] += 0.3f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -2392,7 +2388,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Stack(buff); User.Attributes.BroadcastChangedIfRevealed(); - User.Attributes[GameAttribute.Damage_Weapon_Percent_Total] += 0.3f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Total] += 0.3f; User.Attributes.BroadcastChangedIfRevealed(); } return true; @@ -2400,7 +2396,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { User.Attributes.BroadcastChangedIfRevealed(); - User.Attributes[GameAttribute.Damage_Weapon_Percent_Total] -= StackCount * 0.3f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Total] -= StackCount * 0.3f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -2724,7 +2720,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Necromancer_Corpse_Free_Casting] = true; + User.Attributes[GameAttributes.Necromancer_Corpse_Free_Casting] = true; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -2740,7 +2736,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } public override void Remove() { - User.Attributes[GameAttribute.Necromancer_Corpse_Free_Casting] = false; + User.Attributes[GameAttributes.Necromancer_Corpse_Free_Casting] = false; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -2806,7 +2802,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Free_Cast_All] = true; + User.Attributes[GameAttributes.Free_Cast_All] = true; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -2822,7 +2818,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } public override void Remove() { - User.Attributes[GameAttribute.Free_Cast_All] = false; + User.Attributes[GameAttributes.Free_Cast_All] = false; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -2842,7 +2838,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Hitpoints_On_Kill_Reduction_Percent] -= 0.2f; + User.Attributes[GameAttributes.Hitpoints_On_Kill_Reduction_Percent] -= 0.2f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -2858,7 +2854,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } public override void Remove() { - User.Attributes[GameAttribute.Hitpoints_On_Kill_Reduction_Percent] += 0.2f; + User.Attributes[GameAttributes.Hitpoints_On_Kill_Reduction_Percent] += 0.2f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -3004,8 +3000,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; Target.WalkSpeed *= (1f - PercentageSlow); - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += PercentageSlow; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Total] -= PercentageDamage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += PercentageSlow; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Total] -= PercentageDamage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -3029,8 +3025,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { Target.WalkSpeed /= (1f - PercentageSlow); - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= PercentageSlow; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Total] += PercentageDamage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= PercentageSlow; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Total] += PercentageDamage; Target.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -3096,8 +3092,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; Target.WalkSpeed *= (1f - PercentageMax); - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += PercentageMax; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Total] -= PercentageDamage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += PercentageMax; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Total] -= PercentageDamage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -3113,7 +3109,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations Target.WalkSpeed /= (1f - (PercentageMax - (0.05f * Count))); Count++; Target.WalkSpeed *= (1f - (PercentageMax - (0.05f * Count))); - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 0.05f; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 0.05f; Target.Attributes.BroadcastChangedIfRevealed(); Ticker = new SecondsTickTimer(User.World.Game, 1.0f); } @@ -3123,8 +3119,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { Target.WalkSpeed /= (1f - PercentageSlow); - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= PercentageSlow; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Total] += PercentageDamage; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= PercentageSlow; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Total] += PercentageDamage; Target.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -3145,7 +3141,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Total] -= PercentageDamage; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Total] -= PercentageDamage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -3168,7 +3164,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Total] += PercentageDamage; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Total] += PercentageDamage; Target.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -3200,7 +3196,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; Target.WalkSpeed /= (1f + PercentageSlow); - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= PercentageSlow; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= PercentageSlow; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -3224,7 +3220,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { Target.WalkSpeed /= (1f + PercentageSlow); - Target.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += PercentageSlow; + Target.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += PercentageSlow; Target.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -3244,13 +3240,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_D > 0) //Проклятая земля { foreach (var alr in World.GetActorsBySNO(ActorSno._p6_necro_leech_e_proxyactor)) - if (alr.Attributes[GameAttribute.Summoner_ID] == ((Player) User).PlayerIndex) + if (alr.Attributes[GameAttributes.Summoner_ID] == ((Player) User).PlayerIndex) alr.Destroy(); var proxy = SpawnEffect(ActorSno._p6_necro_leech_e_proxyactor, TargetPosition, ActorSystem.Movement.MovementHelpers.GetFacingAngle(User, TargetPosition), WaitSeconds(30f)); - proxy.Attributes[GameAttribute.Summoner_ID] = ((Player) User).PlayerIndex; + proxy.Attributes[GameAttributes.Summoner_ID] = ((Player) User).PlayerIndex; AddBuff(User, new Rune_DBuff(proxy)); } else @@ -3359,7 +3355,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Target == Target && payload is HitPayload) { payload.Context.User.AddPercentHP(2); - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 100) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 100) { //WeaponDamage(Target, 0.50f, DamageType.Physical); Remove(); @@ -3402,7 +3398,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += 751f; + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += 751f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -3415,7 +3411,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += 751f; + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += 751f; User.Attributes.BroadcastChangedIfRevealed(); } return true; @@ -3423,7 +3419,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] -= StackCount * 751f; + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] -= StackCount * 751f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -3651,9 +3647,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 100 * 15) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 100 * 15) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); //WeaponDamage(Target, 0.50f, DamageType.Physical); Remove(); @@ -3694,9 +3690,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 100 * 15) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 100 * 15) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); Remove(); GeneratePrimaryResource(2); @@ -3737,9 +3733,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 100 * 18) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 100 * 18) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); Remove(); } @@ -3778,9 +3774,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 100 * 15) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 100 * 15) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); Target.PlayEffectGroup(471144); foreach (var monster in Target.GetMonstersInRange(10f)) @@ -3822,9 +3818,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 100 * 15) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 100 * 15) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); Remove(); } @@ -3866,9 +3862,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 10) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 10) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); //WeaponDamage(Target, 0.50f, DamageType.Physical); Remove(); @@ -3909,9 +3905,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 10) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 10) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); //WeaponDamage(Target, 0.50f, DamageType.Physical); Remove(); @@ -3952,9 +3948,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 10) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 10) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); //WeaponDamage(Target, 0.50f, DamageType.Physical); Remove(); @@ -3995,9 +3991,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 10) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 10) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); //WeaponDamage(Target, 0.50f, DamageType.Physical); Remove(); @@ -4038,9 +4034,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 10) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 10) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); //WeaponDamage(Target, 0.50f, DamageType.Physical); Remove(); @@ -4081,9 +4077,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Target == Target && payload is HitPayload) { - if (Target.Attributes[GameAttribute.Hitpoints_Cur] <= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 10) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] <= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 10) { - Target.Attributes[GameAttribute.Hitpoints_Cur] = 0; + Target.Attributes[GameAttributes.Hitpoints_Cur] = 0; Target.Attributes.BroadcastChangedIfRevealed(); //WeaponDamage(Target, 0.50f, DamageType.Physical); Remove(); @@ -4178,8 +4174,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] += 0.03f; - User.Attributes[GameAttribute.Damage_Percent_Reduction_From_Ranged] += 0.03f; + User.Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] += 0.03f; + User.Attributes[GameAttributes.Damage_Percent_Reduction_From_Ranged] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -4192,16 +4188,16 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] += 0.03f; - User.Attributes[GameAttribute.Damage_Percent_Reduction_From_Ranged] += 0.03f; + User.Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] += 0.03f; + User.Attributes[GameAttributes.Damage_Percent_Reduction_From_Ranged] += 0.03f; User.Attributes.BroadcastChangedIfRevealed(); } return true; } public override void Remove() { - User.Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] -= StackCount * 0.03f; - User.Attributes[GameAttribute.Damage_Percent_Reduction_From_Ranged] -= StackCount * 0.03f; + User.Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] -= StackCount * 0.03f; + User.Attributes[GameAttributes.Damage_Percent_Reduction_From_Ranged] -= StackCount * 0.03f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -4222,7 +4218,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.God] = true; + User.Attributes[GameAttributes.God] = true; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -4230,7 +4226,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { - User.Attributes[GameAttribute.God] = false; + User.Attributes[GameAttributes.God] = false; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -4251,7 +4247,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += 0.1f; + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += 0.1f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -4264,14 +4260,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] += 0.1f; + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] += 0.1f; User.Attributes.BroadcastChangedIfRevealed(); } return true; } public override void Remove() { - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second_Bonus] -= StackCount * 0.1f; + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second_Bonus] -= StackCount * 0.1f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -4292,7 +4288,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 0.01f; + User.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 0.01f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -4305,14 +4301,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (stacked) { base.Stack(buff); - User.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] -= 0.01f; + User.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] -= 0.01f; User.Attributes.BroadcastChangedIfRevealed(); } return true; } public override void Remove() { - User.Attributes[GameAttribute.Movement_Scalar_Reduction_Percent] += StackCount * 0.01f; + User.Attributes[GameAttributes.Movement_Scalar_Reduction_Percent] += StackCount * 0.01f; User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); } @@ -4334,7 +4330,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] += ScriptFormula(10); + User.Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] += ScriptFormula(10); User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -4378,7 +4374,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] += ScriptFormula(10); + User.Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] += ScriptFormula(10); User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -4497,7 +4493,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations //[473022] [Actor] p6_necro_boneSpirit_D_projectile //[473023] [Actor] p6_necro_boneSpirit_E_projectile //[473024] [Actor] p6_necro_boneSpirit_F_projectile - User.Attributes[GameAttribute.Skill_Charges, PowerSNO] -= 1; + User.Attributes[GameAttributes.Skill_Charges, PowerSNO] -= 1; User.Attributes.BroadcastChangedIfRevealed(); var projectile = new Projectile( this, @@ -4581,11 +4577,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations else { Max = 3; - if (User.Attributes[GameAttribute.Skill_Charges, PowerSNO] == 4) - User.Attributes[GameAttribute.Skill_Charges, PowerSNO] = 3; + if (User.Attributes[GameAttributes.Skill_Charges, PowerSNO] == 4) + User.Attributes[GameAttributes.Skill_Charges, PowerSNO] = 3; } - if (User.Attributes[GameAttribute.Skill_Charges, PowerSNO] < Max) + if (User.Attributes[GameAttributes.Skill_Charges, PowerSNO] < Max) { if (!CoolDownStarted) { @@ -4594,7 +4590,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations Task.Delay(15100).ContinueWith(delegate { CoolDownStarted = false; - User.Attributes[GameAttribute.Skill_Charges, PowerSNO] = (int)Math.Min(User.Attributes[GameAttribute.Skill_Charges, PowerSNO] + 1, Max); + User.Attributes[GameAttributes.Skill_Charges, PowerSNO] = (int)Math.Min(User.Attributes[GameAttributes.Skill_Charges, PowerSNO] + 1, Max); User.Attributes.BroadcastChangedIfRevealed(); }); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/PassiveBuffs.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/PassiveBuffs.cs index 6baec38..5b7869e 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/PassiveBuffs.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/PassiveBuffs.cs @@ -9,8 +9,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { @@ -119,7 +117,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Init() { Timeout = WaitSeconds(300f); - HPTreshold = User.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.6f; + HPTreshold = User.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.6f; } public override bool Apply() { @@ -160,7 +158,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Init(); Timeout = WaitSeconds(ScriptFormula(0)); MaxStackCount = 10; - HPTreshold = User.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.02f; + HPTreshold = User.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.02f; } public override bool Apply() @@ -174,7 +172,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Stack(buff); if (!stacked) return true; - HPTreshold = User.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.02f * StackCount; + HPTreshold = User.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.02f * StackCount; Extend(30); return true; @@ -216,7 +214,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; _currentBonus = 0.01f * StackCount; - Target.Attributes[GameAttribute.Strength_Bonus_Percent] += _currentBonus; + Target.Attributes[GameAttributes.Strength_Bonus_Percent] += _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -231,10 +229,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!stacked) return true; - Target.Attributes[GameAttribute.Strength_Bonus_Percent] -= _currentBonus; + Target.Attributes[GameAttributes.Strength_Bonus_Percent] -= _currentBonus; _currentBonus = 0.01f * StackCount; - Target.Attributes[GameAttribute.Strength_Bonus_Percent] += _currentBonus; + Target.Attributes[GameAttributes.Strength_Bonus_Percent] += _currentBonus; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -243,7 +241,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Strength_Bonus_Percent] -= _currentBonus; + Target.Attributes[GameAttributes.Strength_Bonus_Percent] -= _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -266,7 +264,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; _currentBonus = 0.05f * StackCount; - Target.Attributes[GameAttribute.Amplify_Damage_Percent] += _currentBonus; + Target.Attributes[GameAttributes.Amplify_Damage_Percent] += _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -283,10 +281,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!stacked) return true; - Target.Attributes[GameAttribute.Amplify_Damage_Percent] -= _currentBonus; + Target.Attributes[GameAttributes.Amplify_Damage_Percent] -= _currentBonus; _currentBonus = 0.05f * StackCount; - Target.Attributes[GameAttribute.Amplify_Damage_Percent] += _currentBonus; + Target.Attributes[GameAttributes.Amplify_Damage_Percent] += _currentBonus; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -295,7 +293,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Amplify_Damage_Percent] -= _currentBonus; + Target.Attributes[GameAttributes.Amplify_Damage_Percent] -= _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -315,7 +313,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += 0.15f; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += 0.15f; //Target.Attributes[GameAttribute.Running_Rate] = Target.Attributes[GameAttribute.Running_Rate] * 1.15f; Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -324,7 +322,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= 0.15f; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= 0.15f; //Target.Attributes[GameAttribute.Running_Rate] = Target.Attributes[GameAttribute.Running_Rate] / 1.15f; Target.Attributes.BroadcastChangedIfRevealed(); } @@ -345,7 +343,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += 0.1f; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += 0.1f; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -353,7 +351,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= 0.1f; + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= 0.1f; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -384,14 +382,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!Applied) { - Target.Attributes[GameAttribute.Block_Amount_Bonus_Percent] += ScriptFormula(2); + Target.Attributes[GameAttributes.Block_Amount_Bonus_Percent] += ScriptFormula(2); Target.Attributes.BroadcastChangedIfRevealed(); Applied = true; } } else if (Applied) { - Target.Attributes[GameAttribute.Block_Amount_Bonus_Percent] -= ScriptFormula(2); + Target.Attributes[GameAttributes.Block_Amount_Bonus_Percent] -= ScriptFormula(2); Target.Attributes.BroadcastChangedIfRevealed(); Applied = false; } @@ -403,7 +401,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); if (Applied) { - Target.Attributes[GameAttribute.Block_Amount_Bonus_Percent] -= ScriptFormula(2); + Target.Attributes[GameAttributes.Block_Amount_Bonus_Percent] -= ScriptFormula(2); Target.Attributes.BroadcastChangedIfRevealed(); Applied = false; } @@ -433,11 +431,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { CheckTimer = WaitSeconds(1f); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= LastBonusPercent; + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= LastBonusPercent; Target.Attributes.BroadcastChangedIfRevealed(); - LastBonusPercent = ((Target.Attributes[GameAttribute.Hitpoints_Max_Total] - Target.Attributes[GameAttribute.Hitpoints_Cur]) / Target.Attributes[GameAttribute.Hitpoints_Max_Total]) * 0.3f; - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += LastBonusPercent; + LastBonusPercent = ((Target.Attributes[GameAttributes.Hitpoints_Max_Total] - Target.Attributes[GameAttributes.Hitpoints_Cur]) / Target.Attributes[GameAttributes.Hitpoints_Max_Total]) * 0.3f; + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += LastBonusPercent; Target.Attributes.BroadcastChangedIfRevealed(); } return false; @@ -447,7 +445,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); if (LastBonusPercent > 0f) { - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= LastBonusPercent; + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= LastBonusPercent; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -476,14 +474,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { CheckTimer = WaitSeconds(1f); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= LastBonusPercent; + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= LastBonusPercent; Target.Attributes.BroadcastChangedIfRevealed(); if ((Target as Player).Inventory.GetEquippedItems().Any(i => i.ItemType.Name.Contains("Shield"))) - LastBonusPercent = (Target as Player).Inventory.GetEquippedItems().Find(i => i.ItemType.Name.Contains("Shield")).Attributes[GameAttribute.Block_Chance_Item]; + LastBonusPercent = (Target as Player).Inventory.GetEquippedItems().Find(i => i.ItemType.Name.Contains("Shield")).Attributes[GameAttributes.Block_Chance_Item]; else LastBonusPercent = 0f; - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += LastBonusPercent; + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += LastBonusPercent; Target.Attributes.BroadcastChangedIfRevealed(); } return false; @@ -493,7 +491,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); if (LastBonusPercent > 0f) { - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= LastBonusPercent; + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= LastBonusPercent; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -508,7 +506,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Init() { base.Init(); - Heal = 5 + 0.0006f * (float)Math.Pow(User.Attributes[GameAttribute.Level], 4); + Heal = 5 + 0.0006f * (float)Math.Pow(User.Attributes[GameAttributes.Level], 4); } public override bool Apply() @@ -552,11 +550,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { CheckTimer = WaitSeconds(1f); - Target.Attributes[GameAttribute.Strength_Bonus] -= LastBonus; + Target.Attributes[GameAttributes.Strength_Bonus] -= LastBonus; Target.Attributes.BroadcastChangedIfRevealed(); LastBonus = 70f * (Target as Player).Inventory.GetEquippedItems().Sum(i => i.Gems.Count); - Target.Attributes[GameAttribute.Strength_Bonus] += LastBonus; + Target.Attributes[GameAttributes.Strength_Bonus] += LastBonus; Target.Attributes.BroadcastChangedIfRevealed(); } return false; @@ -566,7 +564,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); if (LastBonus > 0f) { - Target.Attributes[GameAttribute.Strength_Bonus] -= LastBonus; + Target.Attributes[GameAttributes.Strength_Bonus] -= LastBonus; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -582,7 +580,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Init() { - InitialBonus = Target.Attributes[GameAttribute.Block_Chance]; + InitialBonus = Target.Attributes[GameAttributes.Block_Chance]; } public override bool Apply() @@ -600,9 +598,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { CheckTimer = WaitSeconds(1f); - if (Target.Attributes[GameAttribute.Block_Chance] < 0.75f) + if (Target.Attributes[GameAttributes.Block_Chance] < 0.75f) { - Target.Attributes[GameAttribute.Block_Chance] += 0.025f; + Target.Attributes[GameAttributes.Block_Chance] += 0.025f; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -611,13 +609,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void OnPayload(Payload payload) { if (payload is HitPayload && payload.Target == User && (payload as HitPayload).Blocked) - Target.Attributes[GameAttribute.Block_Chance] -= (Target.Attributes[GameAttribute.Block_Chance] - InitialBonus); + Target.Attributes[GameAttributes.Block_Chance] -= (Target.Attributes[GameAttributes.Block_Chance] - InitialBonus); } public override void Remove() { base.Remove(); - if (Target.Attributes[GameAttribute.Block_Chance] > InitialBonus) - Target.Attributes[GameAttribute.Block_Chance] -= (Target.Attributes[GameAttribute.Block_Chance] - InitialBonus); + if (Target.Attributes[GameAttributes.Block_Chance] > InitialBonus) + Target.Attributes[GameAttributes.Block_Chance] -= (Target.Attributes[GameAttributes.Block_Chance] - InitialBonus); } } #endregion @@ -630,10 +628,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += ScriptFormula(8); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += ScriptFormula(8); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(2); - Target.Attributes[GameAttribute.Resistance_Percent_All] += ScriptFormula(3); + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += ScriptFormula(8); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += ScriptFormula(8); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(2); + Target.Attributes[GameAttributes.Resistance_Percent_All] += ScriptFormula(3); Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -641,10 +639,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= ScriptFormula(8); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= ScriptFormula(8); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(2); - Target.Attributes[GameAttribute.Resistance_Percent_All] -= ScriptFormula(3); + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= ScriptFormula(8); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= ScriptFormula(8); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(2); + Target.Attributes[GameAttributes.Resistance_Percent_All] -= ScriptFormula(3); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -664,7 +662,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second] += (Target.Attributes[GameAttribute.Hitpoints_Max_Total]) / 100; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second] += (Target.Attributes[GameAttributes.Hitpoints_Max_Total]) / 100; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -672,7 +670,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second] -= (Target.Attributes[GameAttribute.Hitpoints_Max_Total]) / 100; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second] -= (Target.Attributes[GameAttributes.Hitpoints_Max_Total]) / 100; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -717,9 +715,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Hitpoints_Regen_Bonus_Percent] += 0.35f; + Target.Attributes[GameAttributes.Hitpoints_Regen_Bonus_Percent] += 0.35f; //random fixed value here, since no bonus_percent attribute for LoH stat, and multiplying base attribute by 35% is unsafe - Target.Attributes[GameAttribute.Hitpoints_On_Hit] += 1000; + Target.Attributes[GameAttributes.Hitpoints_On_Hit] += 1000; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -727,8 +725,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hitpoints_Regen_Bonus_Percent] -= 0.35f; - Target.Attributes[GameAttribute.Hitpoints_On_Hit] -= 1000; + Target.Attributes[GameAttributes.Hitpoints_Regen_Bonus_Percent] -= 0.35f; + Target.Attributes[GameAttributes.Hitpoints_On_Hit] -= 1000; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -772,7 +770,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second] -= Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 100; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second] -= Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 100; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -780,7 +778,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hitpoints_Regen_Per_Second] += Target.Attributes[GameAttribute.Hitpoints_Max_Total] / 100; + Target.Attributes[GameAttributes.Hitpoints_Regen_Per_Second] += Target.Attributes[GameAttributes.Hitpoints_Max_Total] / 100; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -830,7 +828,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; _currentBonus = IntBonus * StackCount; - Target.Attributes[GameAttribute.Intelligence] += _currentBonus; + Target.Attributes[GameAttributes.Intelligence] += _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -840,9 +838,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Stack(buff)) return false; - Target.Attributes[GameAttribute.Intelligence] -= _currentBonus; + Target.Attributes[GameAttributes.Intelligence] -= _currentBonus; _currentBonus = IntBonus * StackCount; - Target.Attributes[GameAttribute.Intelligence] += _currentBonus; + Target.Attributes[GameAttributes.Intelligence] += _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -850,7 +848,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Intelligence] -= IntBonus * StackCount; + Target.Attributes[GameAttributes.Intelligence] -= IntBonus * StackCount; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -871,7 +869,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Resource_Regen_Bonus_Percent, 0] += 0.3f; + Target.Attributes[GameAttributes.Resource_Regen_Bonus_Percent, 0] += 0.3f; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -879,7 +877,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Resource_Regen_Bonus_Percent, 0] -= 0.3f; + Target.Attributes[GameAttributes.Resource_Regen_Bonus_Percent, 0] -= 0.3f; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -899,7 +897,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += 0.15f; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += 0.15f; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -907,7 +905,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= 0.15f; + Target.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= 0.15f; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1049,7 +1047,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; _currentBonus = 0.04f * StackCount; - Target.Attributes[GameAttribute.Weapon_Crit_Chance] += _currentBonus; + Target.Attributes[GameAttributes.Weapon_Crit_Chance] += _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1080,10 +1078,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!stacked) return true; - Target.Attributes[GameAttribute.Weapon_Crit_Chance] -= _currentBonus; + Target.Attributes[GameAttributes.Weapon_Crit_Chance] -= _currentBonus; _currentBonus = 0.04f * StackCount; - Target.Attributes[GameAttribute.Weapon_Crit_Chance] += _currentBonus; + Target.Attributes[GameAttributes.Weapon_Crit_Chance] += _currentBonus; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1092,7 +1090,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Weapon_Crit_Chance] -= _currentBonus; + Target.Attributes[GameAttributes.Weapon_Crit_Chance] -= _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1115,7 +1113,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; _currentBonus = 0.06f * StackCount; - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] += _currentBonus; + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] += _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1146,10 +1144,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!stacked) return true; - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] -= _currentBonus; + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] -= _currentBonus; _currentBonus = 0.06f * StackCount; - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] += _currentBonus; + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] += _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1158,7 +1156,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Dodge_Chance_Bonus] -= _currentBonus; + Target.Attributes[GameAttributes.Dodge_Chance_Bonus] -= _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1198,10 +1196,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { _damageTimer = WaitSeconds(1f); - Target.Attributes[GameAttribute.Resistance, 0] -= _currentBonus; + Target.Attributes[GameAttributes.Resistance, 0] -= _currentBonus; - _currentBonus = 70f * GetEnemiesInRadius(Target.Position, 20f + Target.Attributes[GameAttribute.Gold_PickUp_Radius]).Actors.Count; - Target.Attributes[GameAttribute.Resistance, 0] += _currentBonus; + _currentBonus = 70f * GetEnemiesInRadius(Target.Position, 20f + Target.Attributes[GameAttributes.Gold_PickUp_Radius]).Actors.Count; + Target.Attributes[GameAttributes.Resistance, 0] += _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); if (!(Target as Player).SkillSet.HasPassive(340910)) @@ -1213,7 +1211,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Resistance, 0] -= _currentBonus; + Target.Attributes[GameAttributes.Resistance, 0] -= _currentBonus; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1307,8 +1305,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += 0.15f; - User.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += 0.15f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += 0.15f; + User.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += 0.15f; User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1318,8 +1316,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - User.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= 0.15f; - User.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= 0.15f; + User.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= 0.15f; + User.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= 0.15f; User.Attributes.BroadcastChangedIfRevealed(); } } @@ -1343,7 +1341,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; Logger.Debug("DashMover Called"); // dash speed seems to always be actor speed * 10 - float speed = Target.Attributes[GameAttribute.Running_Rate_Total] * 9f; + float speed = Target.Attributes[GameAttributes.Running_Rate_Total] * 9f; Target.TranslateFacing(_destination, true); _mover = new ActorMover(Target); @@ -1358,7 +1356,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations // make sure buff timeout is big enough otherwise the client will sometimes ignore the visual effects. Timeout = _mover.ArrivalTime; - Target.Attributes[GameAttribute.Hidden] = true; + Target.Attributes[GameAttributes.Hidden] = true; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1366,7 +1364,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hidden] = false; + Target.Attributes[GameAttributes.Hidden] = false; Target.Attributes.BroadcastChangedIfRevealed(); } @@ -1388,7 +1386,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += 1; + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += 1; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -1396,7 +1394,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= 1; + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= 1; Target.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/WitchDoctor.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/WitchDoctor.cs index e6dbb70..dc6857b 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/WitchDoctor.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/WitchDoctor.cs @@ -30,7 +30,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { fetish.Brain.DeActivate(); fetish.Position = PowerContext.RandomDirection(fetish.Master.Position, 3f, 8f); - fetish.Attributes[GameAttribute.Untargetable] = true; + fetish.Attributes[GameAttributes.Untargetable] = true; fetish.EnterWorld(fetish.Position); fetish.PlayActionAnimation(AnimationSno.fetish_spawn_01); } @@ -38,7 +38,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations internal static void MakeFetishLive(this Minion fetish, float? customLifeTime = 60f) { fetish.Brain.Activate(); - fetish.Attributes[GameAttribute.Untargetable] = false; + fetish.Attributes[GameAttributes.Untargetable] = false; fetish.Attributes.BroadcastChangedIfRevealed(); if (customLifeTime != null) fetish.LifeTime = TickTimer.WaitSeconds(fetish.World.Game, customLifeTime.Value); @@ -271,21 +271,21 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Team_Override] = 1; + Target.Attributes[GameAttributes.Team_Override] = 1; Target.Attributes.BroadcastChangedIfRevealed(); return true; } public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Team_Override] = 10; + Target.Attributes[GameAttributes.Team_Override] = 10; Target.Attributes.BroadcastChangedIfRevealed(); } } private void _SetHiddenAttribute(Actor actor, bool active) { - actor.Attributes[GameAttribute.Hidden] = active; + actor.Attributes[GameAttributes.Hidden] = active; actor.Attributes.BroadcastChangedIfRevealed(); } } @@ -376,13 +376,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var dog = new ZombieDog(User.World, plr, 0); dog.Brain.DeActivate(); dog.Position = Target.Position; - dog.Attributes[GameAttribute.Untargetable] = true; + dog.Attributes[GameAttributes.Untargetable] = true; dog.EnterWorld(dog.Position); dog.PlayActionAnimation(AnimationSno.zombiedog_summon_01); Task.Delay(1000).ContinueWith(d => { dog.Brain.Activate(); - dog.Attributes[GameAttribute.Untargetable] = false; + dog.Attributes[GameAttributes.Untargetable] = false; dog.Attributes.BroadcastChangedIfRevealed(); dog.PlayActionAnimation(AnimationSno.zombiedog_idle_01); }); @@ -783,7 +783,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] += ScriptFormula(9); + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] += ScriptFormula(9); Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -791,7 +791,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] -= ScriptFormula(9); + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] -= ScriptFormula(9); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -807,7 +807,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(5); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(5); Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -815,7 +815,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(5); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(5); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -830,17 +830,17 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void OnChannelOpen() { EffectsPerSecond = 0.1f; - User.Attributes[GameAttribute.Projectile_Speed] = User.Attributes[GameAttribute.Projectile_Speed] * ScriptFormula(22); + User.Attributes[GameAttributes.Projectile_Speed] = User.Attributes[GameAttributes.Projectile_Speed] * ScriptFormula(22); if (Rune_D > 0) - User.Attributes[GameAttribute.Steal_Health_Percent] += 0.025f; + User.Attributes[GameAttributes.Steal_Health_Percent] += 0.025f; User.Attributes.BroadcastChangedIfRevealed(); } public override void OnChannelClose() { if (Rune_D > 0) - User.Attributes[GameAttribute.Steal_Health_Percent] -= 0.025f; - User.Attributes[GameAttribute.Projectile_Speed] = User.Attributes[GameAttribute.Projectile_Speed] / ScriptFormula(22); + User.Attributes[GameAttributes.Steal_Health_Percent] -= 0.025f; + User.Attributes[GameAttributes.Projectile_Speed] = User.Attributes[GameAttributes.Projectile_Speed] / ScriptFormula(22); User.Attributes.BroadcastChangedIfRevealed(); } @@ -1181,21 +1181,21 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Has_Look_Override] = true;//unchecked((int)0xF2F224EA); - User.Attributes[GameAttribute.Walk_Passability_Power_SNO] = 106237; - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += 0.2f; + User.Attributes[GameAttributes.Has_Look_Override] = true;//unchecked((int)0xF2F224EA); + User.Attributes[GameAttributes.Walk_Passability_Power_SNO] = 106237; + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += 0.2f; //User.Attributes[GameAttribute.Stealthed] = true; //User.Attributes[GameAttribute.Untargetable] = true; //User.Attributes[GameAttribute.UntargetableByPets] = true; if (Rune_D > 0) { - regenBonus = ScriptFormula(9) * User.Attributes[GameAttribute.Resource_Max_Total, 0]; - User.Attributes[GameAttribute.Resource_Regen_Percent_Per_Second, 0] += regenBonus; + regenBonus = ScriptFormula(9) * User.Attributes[GameAttributes.Resource_Max_Total, 0]; + User.Attributes[GameAttributes.Resource_Regen_Percent_Per_Second, 0] += regenBonus; } if (Rune_E > 0) { - regenBonus = ScriptFormula(10) * User.Attributes[GameAttribute.Hitpoints_Max_Total, 0]; - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second] += regenBonus; + regenBonus = ScriptFormula(10) * User.Attributes[GameAttributes.Hitpoints_Max_Total, 0]; + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second] += regenBonus; } User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1203,18 +1203,18 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= 0.2f; + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= 0.2f; if (Rune_D > 0) { - User.Attributes[GameAttribute.Resource_Regen_Percent_Per_Second, 0] -= regenBonus; + User.Attributes[GameAttributes.Resource_Regen_Percent_Per_Second, 0] -= regenBonus; } if (Rune_E > 0) { //is this attribute by percent on its own? "Gain 16% of your maximum Life every second" - User.Attributes[GameAttribute.Hitpoints_Regen_Per_Second] -= regenBonus; + User.Attributes[GameAttributes.Hitpoints_Regen_Per_Second] -= regenBonus; } - User.Attributes[GameAttribute.Has_Look_Override] = false; - User.Attributes[GameAttribute.Walk_Passability_Power_SNO] = -1; + User.Attributes[GameAttributes.Has_Look_Override] = false; + User.Attributes[GameAttributes.Walk_Passability_Power_SNO] = -1; //User.Attributes[GameAttribute.Stealthed] = false; //User.Attributes[GameAttribute.Untargetable] = false; //User.Attributes[GameAttribute.UntargetableByPets] = false; @@ -1337,7 +1337,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); { - Target.Attributes[GameAttribute.Intelligence] -= StackCount * ScriptFormula(8); + Target.Attributes[GameAttributes.Intelligence] -= StackCount * ScriptFormula(8); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1364,7 +1364,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations GeneratePrimaryResource(ScriptFormula(4)); } - Target.Attributes[GameAttribute.Intelligence] += ScriptFormula(8); + Target.Attributes[GameAttributes.Intelligence] += ScriptFormula(8); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1790,14 +1790,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Team_Override] = 1; + Target.Attributes[GameAttributes.Team_Override] = 1; Target.Attributes.BroadcastChangedIfRevealed(); return true; } public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Team_Override] = 10; + Target.Attributes[GameAttributes.Team_Override] = 10; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1879,7 +1879,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } if (Rune_C > 0) { - Ally.AddHP(Ally.Attributes[GameAttribute.Hitpoints_Max_Total] * ScriptFormula(4)); + Ally.AddHP(Ally.Attributes[GameAttributes.Hitpoints_Max_Total] * ScriptFormula(4)); } AddBuff(Ally, new FetishShamanBuff()); } @@ -1903,10 +1903,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; if (Rune_A > 0) { - Target.Attributes[GameAttribute.Amplify_Damage_Percent] += ScriptFormula(3); + Target.Attributes[GameAttributes.Amplify_Damage_Percent] += ScriptFormula(3); } - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] += ScriptFormula(1); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] += ScriptFormula(1); + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] += ScriptFormula(1); + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] += ScriptFormula(1); Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -1917,10 +1917,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations base.Remove(); if (Rune_A > 0) { - Target.Attributes[GameAttribute.Amplify_Damage_Percent] -= ScriptFormula(3); + Target.Attributes[GameAttributes.Amplify_Damage_Percent] -= ScriptFormula(3); } - Target.Attributes[GameAttribute.Movement_Bonus_Run_Speed] -= ScriptFormula(1); - Target.Attributes[GameAttribute.Attacks_Per_Second_Percent] -= ScriptFormula(1); + Target.Attributes[GameAttributes.Movement_Bonus_Run_Speed] -= ScriptFormula(1); + Target.Attributes[GameAttributes.Attacks_Per_Second_Percent] -= ScriptFormula(1); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -1947,13 +1947,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var dog = new ZombieDog(User.World, User, 0); dog.Brain.DeActivate(); dog.Position = Target.Position; - dog.Attributes[GameAttribute.Untargetable] = true; + dog.Attributes[GameAttributes.Untargetable] = true; dog.EnterWorld(dog.Position); dog.PlayActionAnimation(AnimationSno.zombiedog_summon_01); Task.Delay(1000).ContinueWith(d => { dog.Brain.Activate(); - dog.Attributes[GameAttribute.Untargetable] = false; + dog.Attributes[GameAttributes.Untargetable] = false; dog.Attributes.BroadcastChangedIfRevealed(); dog.PlayActionAnimation(AnimationSno.zombiedog_idle_01); }); @@ -2076,7 +2076,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var Creeper = new WallCreeper(World, this, i); Creeper.Brain.DeActivate(); Creeper.Position = RandomDirection(Wall.Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - Creeper.Attributes[GameAttribute.Untargetable] = true; + Creeper.Attributes[GameAttributes.Untargetable] = true; Creeper.EnterWorld(Creeper.Position); Creepers.Add(Creeper); yield return WaitSeconds(0.2f); @@ -2084,7 +2084,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (Actor Creeper in Creepers) { (Creeper as Minion).Brain.Activate(); - Creeper.Attributes[GameAttribute.Untargetable] = false; + Creeper.Attributes[GameAttributes.Untargetable] = false; Creeper.Attributes.BroadcastChangedIfRevealed(); } } @@ -2192,7 +2192,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations dogs++; } - User.Attributes[GameAttribute.Free_Cast, SkillsSystem.Skills.WitchDoctor.Support.Sacrifice] = 0; + User.Attributes[GameAttributes.Free_Cast, SkillsSystem.Skills.WitchDoctor.Support.Sacrifice] = 0; User.Attributes.BroadcastChangedIfRevealed(); RemoveBuffs(User, 102573); @@ -2205,14 +2205,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var dog = new ZombieDog(User.World, User, 0); dog.Brain.DeActivate(); dog.Position = RandomDirection(User.Position, 3f, 8f); - dog.Attributes[GameAttribute.Untargetable] = true; + dog.Attributes[GameAttributes.Untargetable] = true; dog.EnterWorld(dog.Position); dog.PlayActionAnimation(AnimationSno.zombiedog_summon_01); _dogsSummoned++; yield return WaitSeconds(0.5f); dog.Brain.Activate(); - dog.Attributes[GameAttribute.Untargetable] = false; + dog.Attributes[GameAttributes.Untargetable] = false; dog.Attributes.BroadcastChangedIfRevealed(); dog.PlayActionAnimation(AnimationSno.zombiedog_idle_01); } @@ -2262,13 +2262,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var garg = new GargantuanMinion(World, this, 0); garg.Brain.DeActivate(); garg.Position = RandomDirection(User.Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - garg.Attributes[GameAttribute.Untargetable] = true; + garg.Attributes[GameAttributes.Untargetable] = true; garg.EnterWorld(garg.Position); garg.PlayActionAnimation(AnimationSno.gargantuan_summon); yield return WaitSeconds(0.8f); (garg as Minion).Brain.Activate(); - garg.Attributes[GameAttribute.Untargetable] = false; + garg.Attributes[GameAttributes.Untargetable] = false; garg.Attributes.BroadcastChangedIfRevealed(); garg.PlayActionAnimation(AnimationSno.gargantuan_idle_01); //Not sure why this is required, but after the summon is done, it'll just be frozen otherwise. @@ -2393,13 +2393,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var hex = new HexMinion(World, this, 0); hex.Brain.DeActivate(); hex.Position = RandomDirection(User.Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - hex.Attributes[GameAttribute.Untargetable] = true; + hex.Attributes[GameAttributes.Untargetable] = true; hex.EnterWorld(hex.Position); hex.PlayActionAnimation(AnimationSno.fetish_spawn_01); yield return WaitSeconds(0.8f); (hex as Minion).Brain.Activate(); - hex.Attributes[GameAttribute.Untargetable] = false; + hex.Attributes[GameAttributes.Untargetable] = false; hex.Attributes.BroadcastChangedIfRevealed(); } yield break; @@ -2418,7 +2418,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.CantStartDisplayedPowers] = true; + User.Attributes[GameAttributes.CantStartDisplayedPowers] = true; User.Attributes.BroadcastChangedIfRevealed(); User.PlayEffectGroup(107524); @@ -2436,7 +2436,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations attack.AddWeaponDamage(ScriptFormula(13), DamageType.Physical); attack.Apply(); - User.Attributes[GameAttribute.CantStartDisplayedPowers] = false; + User.Attributes[GameAttributes.CantStartDisplayedPowers] = false; User.Attributes.BroadcastChangedIfRevealed(); } } @@ -2484,12 +2484,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations spider.Brain.DeActivate(); spider.Scale = 3f; spider.Position = RandomDirection(TargetPosition, 3f, 8f); - spider.Attributes[GameAttribute.Untargetable] = true; + spider.Attributes[GameAttributes.Untargetable] = true; spider.EnterWorld(spider.Position); yield return WaitSeconds(0.05f); (spider as Minion).Brain.Activate(); - spider.Attributes[GameAttribute.Untargetable] = false; + spider.Attributes[GameAttributes.Untargetable] = false; spider.Attributes.BroadcastChangedIfRevealed(); AddBuff(spider, new SpiderQueenBuff()); } @@ -2512,12 +2512,12 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations ); spider.Brain.DeActivate(); spider.Position = RandomDirection(TargetPosition, 3f, 8f); - spider.Attributes[GameAttribute.Untargetable] = true; + spider.Attributes[GameAttributes.Untargetable] = true; spider.EnterWorld(spider.Position); yield return WaitSeconds(0.05f); (spider as Minion).Brain.Activate(); - spider.Attributes[GameAttribute.Untargetable] = false; + spider.Attributes[GameAttributes.Untargetable] = false; spider.Attributes.BroadcastChangedIfRevealed(); AddBuff(spider, new SpiderBuff()); } @@ -2609,7 +2609,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var dog = new ZombieDog(World, User, i, ScriptFormula(13)); dog.Brain.DeActivate(); dog.Position = RandomDirection(User.Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - dog.Attributes[GameAttribute.Untargetable] = true; + dog.Attributes[GameAttributes.Untargetable] = true; dog.EnterWorld(dog.Position); dog.PlayActionAnimation(AnimationSno.zombiedog_summon_01); dogs.Add(dog); @@ -2619,7 +2619,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (Actor dog in dogs) { (dog as Minion).Brain.Activate(); - dog.Attributes[GameAttribute.Untargetable] = false; + dog.Attributes[GameAttributes.Untargetable] = false; dog.Attributes.BroadcastChangedIfRevealed(); dog.PlayActionAnimation(AnimationSno.zombiedog_idle_01); //Not sure why this is required, but after the summon is done, it'll just be frozen otherwise. if (Rune_A > 0) @@ -2776,7 +2776,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Bleeding] = true; + Target.Attributes[GameAttributes.Bleeding] = true; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2785,7 +2785,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); - Target.Attributes[GameAttribute.Bleeding] = false; + Target.Attributes[GameAttributes.Bleeding] = false; Target.Attributes.BroadcastChangedIfRevealed(); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Wizard.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Wizard.cs index ab013a8..d86abe0 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Wizard.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/HeroSkills/Wizard.cs @@ -1,9 +1,7 @@ -using DiIiS_NA.Core.Helpers.Math; -using DiIiS_NA.D3_GameServer.Core.Types.SNO; +using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.Core.Types.Math; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Minions; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; @@ -11,12 +9,9 @@ using DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Effect; using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using DiIiS_NA.Core.Extensions; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations @@ -81,7 +76,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations (User as Player).GeneratePrimaryResource(ScriptFormula(13)); if (Rune_E > 0 && !HasBuff(User)) //Barrier Blades, buff slot 1 - AddBuff(User, new BarrierBuff(User.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.04f, WaitSeconds(ScriptFormula(9)))); + AddBuff(User, new BarrierBuff(User.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.04f, WaitSeconds(ScriptFormula(9)))); }; blade.Apply(); yield break; @@ -371,14 +366,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations proj.OnCollision = (hit) => { hit.PlayEffectGroup(77858); - WeaponDamage(hit, ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttribute.Attacks_Per_Second_Total], DamageType.Lightning); + WeaponDamage(hit, ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttributes.Attacks_Per_Second_Total], DamageType.Lightning); }; proj.Launch(TargetPosition, 1.25f); } else if (Rune_C > 0) //Arc Lightning { User.PlayEffectGroup(77807); - WeaponDamage(GetEnemiesInArcDirection(User.Position, TargetPosition, ScriptFormula(2), 120f), ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttribute.Attacks_Per_Second_Total], DamageType.Lightning); + WeaponDamage(GetEnemiesInArcDirection(User.Position, TargetPosition, ScriptFormula(2), 120f), ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttributes.Attacks_Per_Second_Total], DamageType.Lightning); } else if (Target == null) { @@ -401,7 +396,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations ropeSource = curTarget; AttackPayload attack = new AttackPayload(this); - attack.AddWeaponDamage(ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttribute.Attacks_Per_Second_Total], DamageType.Lightning); + attack.AddWeaponDamage(ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttributes.Attacks_Per_Second_Total], DamageType.Lightning); attack.SetSingleTarget(curTarget); attack.OnHit = hitPayload => { @@ -694,8 +689,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Init() //Hydra APS should scale with wizard APS { - if (User.Attributes[GameAttribute.Attacks_Per_Second_Total] > 1f) - FireRate /= User.Attributes[GameAttribute.Attacks_Per_Second_Total]; + if (User.Attributes[GameAttributes.Attacks_Per_Second_Total] > 1f) + FireRate /= User.Attributes[GameAttributes.Attacks_Per_Second_Total]; if (FireRate < 0.25f) FireRate = 0.25f; } @@ -1419,7 +1414,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_C > 0) //Entropy { AddBuff(User, new FieldBuff()); - WeaponDamage(GetEnemiesInArcDirection(User.Position, TargetPosition, 20f, 120f), ScriptFormula(1) * ScriptFormula(2) * EffectsPerSecond * User.Attributes[GameAttribute.Attacks_Per_Second_Total], DamageType.Arcane); + WeaponDamage(GetEnemiesInArcDirection(User.Position, TargetPosition, 20f, 120f), ScriptFormula(1) * ScriptFormula(2) * EffectsPerSecond * User.Attributes[GameAttributes.Attacks_Per_Second_Total], DamageType.Arcane); } else foreach (Actor actor in GetEnemiesInRadius(User.Position, BeamLength + 10f).Actors) @@ -1428,7 +1423,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { AttackPayload ray = new AttackPayload(this); ray.SetSingleTarget(actor); - ray.AddWeaponDamage(ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttribute.Attacks_Per_Second_Total], DamageType.Arcane); + ray.AddWeaponDamage(ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttributes.Attacks_Per_Second_Total], DamageType.Arcane); ray.OnHit = hitPayload => { if (Rune_A > 0) //Intensify, done in HitPayload @@ -1834,7 +1829,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations mine.PlayEffectGroup(171183); AttackPayload mine_attack = new AttackPayload(this); mine_attack.Targets = GetEnemiesInRadius(mine.Position, 10f); - mine_attack.AddWeaponDamage(ScriptFormula(29) * EffectsPerSecond * User.Attributes[GameAttribute.Attacks_Per_Second_Total], DamageType.Arcane); + mine_attack.AddWeaponDamage(ScriptFormula(29) * EffectsPerSecond * User.Attributes[GameAttributes.Attacks_Per_Second_Total], DamageType.Arcane); mine_attack.OnHit = hitPayload => { if (!HasBuff(hitPayload.Target)) @@ -1855,7 +1850,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations AttackPayload attack = new AttackPayload(this); attack.Targets = GetEnemiesInRadius(laggyPosition, 5f); - attack.AddWeaponDamage((Rune_E > 0 ? ScriptFormula(17) : ScriptFormula(0)) * EffectsPerSecond * User.Attributes[GameAttribute.Attacks_Per_Second_Total], DamageType.Arcane); + attack.AddWeaponDamage((Rune_E > 0 ? ScriptFormula(17) : ScriptFormula(0)) * EffectsPerSecond * User.Attributes[GameAttributes.Attacks_Per_Second_Total], DamageType.Arcane); attack.OnHit = hitPayload => { if (Rune_A > 0) //Disruption @@ -1877,7 +1872,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (hit == null || hit == hitPayload.Target) return; hit.PlayEffectGroup(RuneSelect(19308, 130020, 215580, -1, 216056, -1)); - WeaponDamage(GetEnemiesInRadius(hit.Position, 5f), ScriptFormula(13) * EffectsPerSecond * User.Attributes[GameAttribute.Attacks_Per_Second_Total], DamageType.Arcane); + WeaponDamage(GetEnemiesInRadius(hit.Position, 5f), ScriptFormula(13) * EffectsPerSecond * User.Attributes[GameAttributes.Attacks_Per_Second_Total], DamageType.Arcane); proj.Destroy(); }; proj.Launch(cascadeTarget.Position, ScriptFormula(23)); @@ -2057,7 +2052,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Weapon_Crit_Chance] += Percentage; + Target.Attributes[GameAttributes.Weapon_Crit_Chance] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2072,7 +2067,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Weapon_Crit_Chance] -= Percentage; + Target.Attributes[GameAttributes.Weapon_Crit_Chance] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -2124,7 +2119,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations UsePrimaryResource(ScriptFormula(19)); var blizzPoint = SpawnProxy(PowerMath.TranslateDirection2D(User.Position, TargetPosition, User.Position, Math.Min(PowerMath.Distance2D(User.Position, TargetPosition), 45f))); - var blizzard = SpawnEffect(ActorSno._wizard_blizzard, blizzPoint.Position, 0, WaitSeconds(ScriptFormula(4) + User.Attributes[GameAttribute.Power_Duration_Increase, 30680])); + var blizzard = SpawnEffect(ActorSno._wizard_blizzard, blizzPoint.Position, 0, WaitSeconds(ScriptFormula(4) + User.Attributes[GameAttributes.Power_Duration_Increase, 30680])); blizzard.UpdateDelay = 1f; blizzard.OnUpdate = () => { @@ -2265,7 +2260,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_B > 0) //Sleet Storm { attack.Targets = GetEnemiesInRadius(User.Position, ScriptFormula(7)); - attack.AddWeaponDamage(ScriptFormula(6) * EffectsPerSecond * User.Attributes[GameAttribute.Attacks_Per_Second_Total], DamageType.Cold); + attack.AddWeaponDamage(ScriptFormula(6) * EffectsPerSecond * User.Attributes[GameAttributes.Attacks_Per_Second_Total], DamageType.Cold); attack.OnHit = hit => { AddBuff(hit.Target, new DebuffChilled(ScriptFormula(14), WaitSeconds(ScriptFormula(4)))); @@ -2291,7 +2286,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations _beamEnd.MoveSnapped(attackPos, 0f); // all runes other than B seem to share the same weapon damage. - attack.AddWeaponDamage(ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttribute.Attacks_Per_Second_Total], DamageType.Cold); + attack.AddWeaponDamage(ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttributes.Attacks_Per_Second_Total], DamageType.Cold); attack.OnHit = hit => { @@ -2393,7 +2388,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations } UsePrimaryResource(EvalTag(PowerKeys.ResourceCost)); - if (User is Player && User.Attributes[GameAttribute.Hitpoints_Cur] < (User.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.05f)) + if (User is Player && User.Attributes[GameAttributes.Hitpoints_Cur] < (User.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.05f)) (User as Player).GrantAchievement(74987243307587); if (!(Rune_E > 0 || Rune_D > 0)) @@ -2457,7 +2452,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var Image = new MirrorImageMinion(World, this, i, ScriptFormula(9)); Image.Brain.DeActivate(); Image.Position = RandomDirection(User.Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - Image.Attributes[GameAttribute.Untargetable] = true; + Image.Attributes[GameAttributes.Untargetable] = true; Image.EnterWorld(Image.Position); Images.Add(Image); yield return WaitSeconds(0.2f); @@ -2465,7 +2460,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (Actor Image in Images) { (Image as Minion).Brain.Activate(); - Image.Attributes[GameAttribute.Untargetable] = false; + Image.Attributes[GameAttributes.Untargetable] = false; Image.Attributes.BroadcastChangedIfRevealed(); } yield break; @@ -2487,7 +2482,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; //gameattribute damage reduction, Absorb should do the same thing? - Target.Attributes[GameAttribute.Damage_Absorb_Percent] += ScriptFormula(14); + Target.Attributes[GameAttributes.Damage_Absorb_Percent] += ScriptFormula(14); Target.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2495,7 +2490,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Damage_Absorb_Percent] -= ScriptFormula(14); + Target.Attributes[GameAttributes.Damage_Absorb_Percent] -= ScriptFormula(14); Target.Attributes.BroadcastChangedIfRevealed(); } @@ -2588,7 +2583,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] += ScriptFormula(10); + User.Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] += ScriptFormula(10); User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -2600,7 +2595,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (PowerMath.Distance2D(payload.Target.Position, payload.Context.User.Position) > 12f) return; - if (!payload.Context.User.Attributes[GameAttribute.Freeze_Immune]) + if (!payload.Context.User.Attributes[GameAttributes.Freeze_Immune]) { if (!HasBuff(payload.Context.User)) AddBuff(payload.Context.User, new DebuffFrozen(WaitSeconds(ScriptFormula(4)))); @@ -2661,7 +2656,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee] += ScriptFormula(10); + User.Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee] += ScriptFormula(10); User.Attributes.BroadcastChangedIfRevealed(); } } @@ -2681,7 +2676,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(26); + User.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(26); User.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -2693,7 +2688,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!stacked) return true; - User.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(26); + User.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(26); User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -2702,7 +2697,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Armor_Bonus_Percent] -= StackCount * ScriptFormula(26); + User.Attributes[GameAttributes.Armor_Bonus_Percent] -= StackCount * ScriptFormula(26); User.Attributes.BroadcastChangedIfRevealed(); } } @@ -2980,14 +2975,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += Percentage; Target.Attributes.BroadcastChangedIfRevealed(); return true; } public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= Percentage; + Target.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= Percentage; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -3004,7 +2999,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - User.Attributes[GameAttribute.Resource_Cost_Reduction_Amount] += (int)ScriptFormula(7); + User.Attributes[GameAttributes.Resource_Cost_Reduction_Amount] += (int)ScriptFormula(7); User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -3012,7 +3007,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { - User.Attributes[GameAttribute.Resource_Cost_Reduction_Amount] -= (int)ScriptFormula(7); + User.Attributes[GameAttributes.Resource_Cost_Reduction_Amount] -= (int)ScriptFormula(7); User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); @@ -3043,7 +3038,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Init() { Timeout = WaitSeconds(ScriptFormula(5)); //Rune B Enduring Skin included here - HPTreshold = User.Attributes[GameAttribute.Hitpoints_Max_Total] * (Rune_C > 0 ? 0.6f : 0.3f); + HPTreshold = User.Attributes[GameAttributes.Hitpoints_Max_Total] * (Rune_C > 0 ? 0.6f : 0.3f); } public override bool Apply() @@ -3052,11 +3047,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; if (Rune_A > 0) //Sleek Shell - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(1); + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] += ScriptFormula(1); if (Rune_D > 0) //Prism - User.Attributes[GameAttribute.Resource_Cost_Reduction_Amount] += (int)ScriptFormula(4); + User.Attributes[GameAttributes.Resource_Cost_Reduction_Amount] += (int)ScriptFormula(4); - User.Attributes[GameAttribute.Has_Look_Override, 0x061F7489] = true;//0x061F7489; + User.Attributes[GameAttributes.Has_Look_Override, 0x061F7489] = true;//0x061F7489; User.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -3082,11 +3077,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations WeaponDamage(GetEnemiesInRadius(User.Position, ScriptFormula(6)), ScriptFormula(2), DamageType.Arcane); } if (Rune_A > 0) - User.Attributes[GameAttribute.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(1); + User.Attributes[GameAttributes.Movement_Scalar_Uncapped_Bonus] -= ScriptFormula(1); if (Rune_D > 0) - User.Attributes[GameAttribute.Resource_Cost_Reduction_Amount] -= (int)ScriptFormula(4); + User.Attributes[GameAttributes.Resource_Cost_Reduction_Amount] -= (int)ScriptFormula(4); - User.Attributes[GameAttribute.Has_Look_Override, 0x061F7489] = false; + User.Attributes[GameAttributes.Has_Look_Override, 0x061F7489] = false; User.PlayEffectGroup(RuneSelect(93077, 187716, 187805, 187822, 187831, 187851)); User.Attributes.BroadcastChangedIfRevealed(); base.Remove(); @@ -3163,7 +3158,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (actor.Slowed) { actor.Slowed = false; - actor.Attributes[GameAttribute.Projectile_Speed] *= 10f; + actor.Attributes[GameAttributes.Projectile_Speed] *= 10f; } } @@ -3174,7 +3169,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { TimeWarp.UtilityValue++; actor.Slowed = true; - actor.Attributes[GameAttribute.Projectile_Speed] /= 10f; + actor.Attributes[GameAttributes.Projectile_Speed] /= 10f; } if (Rune_E > 0) //Stretch Time @@ -3210,13 +3205,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(8); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(8); return true; } public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(8); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(8); } } @@ -3275,17 +3270,17 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations return false; if (Rune_A > 0) //Prismatic Armor - Target.Attributes[GameAttribute.Resistance_Percent_All] += ScriptFormula(4); + Target.Attributes[GameAttributes.Resistance_Percent_All] += ScriptFormula(4); if (Rune_B > 0) //Energy Tap - Target.Attributes[GameAttribute.Resource_Max_Bonus, 1] += ScriptFormula(6); + Target.Attributes[GameAttributes.Resource_Max_Bonus, 1] += ScriptFormula(6); else - Target.Attributes[GameAttribute.Resource_Max_Bonus, 1] -= ScriptFormula(2); + Target.Attributes[GameAttributes.Resource_Max_Bonus, 1] -= ScriptFormula(2); if (Rune_E > 0) //Pinpoint Barrier - Target.Attributes[GameAttribute.Weapon_Crit_Chance] += ScriptFormula(13); + Target.Attributes[GameAttributes.Weapon_Crit_Chance] += ScriptFormula(13); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(1); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(1); Target.Attributes.BroadcastChangedIfRevealed(); @@ -3297,7 +3292,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Target == Target && payload is HitPayload) { if (Rune_C > 0) //Force Armor - (payload as HitPayload).TotalDamage = Math.Min((payload as HitPayload).TotalDamage, Target.Attributes[GameAttribute.Hitpoints_Max_Total] * ScriptFormula(8)); + (payload as HitPayload).TotalDamage = Math.Min((payload as HitPayload).TotalDamage, Target.Attributes[GameAttributes.Hitpoints_Max_Total] * ScriptFormula(8)); if (Rune_D > 0 && AbsorbReady) //Absorbtion { @@ -3322,17 +3317,17 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); if (Rune_A > 0) - Target.Attributes[GameAttribute.Resistance_Percent_All] -= ScriptFormula(4); + Target.Attributes[GameAttributes.Resistance_Percent_All] -= ScriptFormula(4); if (Rune_B > 0) - Target.Attributes[GameAttribute.Resource_Max_Bonus, 1] -= ScriptFormula(6); + Target.Attributes[GameAttributes.Resource_Max_Bonus, 1] -= ScriptFormula(6); else - Target.Attributes[GameAttribute.Resource_Max_Bonus, 1] += ScriptFormula(2); + Target.Attributes[GameAttributes.Resource_Max_Bonus, 1] += ScriptFormula(2); if (Rune_E > 0) - Target.Attributes[GameAttribute.Weapon_Crit_Chance] -= ScriptFormula(13); + Target.Attributes[GameAttributes.Weapon_Crit_Chance] -= ScriptFormula(13); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(1); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(1); Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -3375,8 +3370,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; User.PlayEffectGroup(RuneSelect(218923, 219289, 219306, 219390, 219396, 219338)); - User.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] += ScriptFormula(14); - User.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += ScriptFormula(14); + User.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] += ScriptFormula(14); + User.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += ScriptFormula(14); User.Attributes.BroadcastChangedIfRevealed(); return true; @@ -3385,8 +3380,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - User.Attributes[GameAttribute.Damage_Weapon_Percent_Bonus] -= ScriptFormula(14); - User.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= ScriptFormula(14); + User.Attributes[GameAttributes.Damage_Weapon_Percent_Bonus] -= ScriptFormula(14); + User.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= ScriptFormula(14); User.Attributes.BroadcastChangedIfRevealed(); } @@ -3476,7 +3471,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_E > 0 && !HasBuff(User)) //Deflection if (Rand.NextDouble() < lastAttack.Context.GetProcCoefficient()) - AddBuff(User, new DeflectionBuff(User.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.04f, WaitSeconds(ScriptFormula(13)))); + AddBuff(User, new DeflectionBuff(User.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.04f, WaitSeconds(ScriptFormula(13)))); } } } @@ -3609,18 +3604,18 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Armor_Bonus_Percent] += ScriptFormula(3); - Target.Attributes[GameAttribute.Resistance_Percent_All] += ScriptFormula(4); - Target.Attributes[GameAttribute.Amplify_Damage_Percent] += ScriptFormula(9); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += ScriptFormula(9); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] += ScriptFormula(3); + Target.Attributes[GameAttributes.Resistance_Percent_All] += ScriptFormula(4); + Target.Attributes[GameAttributes.Amplify_Damage_Percent] += ScriptFormula(9); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += ScriptFormula(9); - Target.Attributes[GameAttribute.Skill_Override, 0] = 135166; - Target.Attributes[GameAttribute.Skill_Override, 1] = 135238; - Target.Attributes[GameAttribute.Skill_Override, 2] = 167355; - Target.Attributes[GameAttribute.Skill_Override, 3] = Rune_B > 0 ? 135663 : -1; - Target.Attributes[GameAttribute.Skill_Override, 4] = Rune_C > 0 ? 167648 : -1; - Target.Attributes[GameAttribute.Skill_Override, 5] = 166616; - Target.Attributes[GameAttribute.Skill_Override_Active] = true; + Target.Attributes[GameAttributes.Skill_Override, 0] = 135166; + Target.Attributes[GameAttributes.Skill_Override, 1] = 135238; + Target.Attributes[GameAttributes.Skill_Override, 2] = 167355; + Target.Attributes[GameAttributes.Skill_Override, 3] = Rune_B > 0 ? 135663 : -1; + Target.Attributes[GameAttributes.Skill_Override, 4] = Rune_C > 0 ? 167648 : -1; + Target.Attributes[GameAttributes.Skill_Override, 5] = 166616; + Target.Attributes[GameAttributes.Skill_Override_Active] = true; Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -3631,8 +3626,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (payload.Context.User == Target && payload is DeathPayload) { KillStreakBonus += 0.06f; - Target.Attributes[GameAttribute.Amplify_Damage_Percent] += 0.06f; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += 0.06f; + Target.Attributes[GameAttributes.Amplify_Damage_Percent] += 0.06f; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += 0.06f; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -3640,17 +3635,17 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Armor_Bonus_Percent] -= ScriptFormula(3); - Target.Attributes[GameAttribute.Resistance_Percent_All] -= ScriptFormula(4); - Target.Attributes[GameAttribute.Amplify_Damage_Percent] -= ScriptFormula(9); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= ScriptFormula(9); + Target.Attributes[GameAttributes.Armor_Bonus_Percent] -= ScriptFormula(3); + Target.Attributes[GameAttributes.Resistance_Percent_All] -= ScriptFormula(4); + Target.Attributes[GameAttributes.Amplify_Damage_Percent] -= ScriptFormula(9); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= ScriptFormula(9); if (KillStreakBonus > 0f) { - Target.Attributes[GameAttribute.Amplify_Damage_Percent] -= KillStreakBonus; - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= KillStreakBonus; + Target.Attributes[GameAttributes.Amplify_Damage_Percent] -= KillStreakBonus; + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= KillStreakBonus; KillStreakBonus = 0f; } - Target.Attributes[GameAttribute.Skill_Override_Active] = false; + Target.Attributes[GameAttributes.Skill_Override_Active] = false; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -3685,7 +3680,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void OnChannelOpen() { EffectsPerSecond = 0.3f; - DamageMult = ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttribute.Attacks_Per_Second_Total]; + DamageMult = ScriptFormula(0) * EffectsPerSecond * User.Attributes[GameAttributes.Attacks_Per_Second_Total]; _calcTargetPosition(); //"Disc" visuals @@ -3939,7 +3934,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (actor.Slowed) { actor.Slowed = false; - actor.Attributes[GameAttribute.Projectile_Speed] *= 10f; + actor.Attributes[GameAttributes.Projectile_Speed] *= 10f; } } @@ -3949,7 +3944,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!actor.Slowed) { actor.Slowed = true; - actor.Attributes[GameAttribute.Projectile_Speed] /= 10f; + actor.Attributes[GameAttributes.Projectile_Speed] /= 10f; } } @@ -3978,7 +3973,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations var Image = new MirrorImageMinion(World, this, i, ScriptFormula(2)); Image.Brain.DeActivate(); Image.Position = RandomDirection(User.Position, 3f, 8f); //Kind of hacky until we get proper collisiondetection - Image.Attributes[GameAttribute.Untargetable] = true; + Image.Attributes[GameAttributes.Untargetable] = true; Image.EnterWorld(Image.Position); Images.Add(Image); yield return WaitSeconds(0.2f); @@ -3987,7 +3982,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations foreach (Actor Image in Images) { (Image as Minion).Brain.Activate(); - Image.Attributes[GameAttribute.Untargetable] = false; + Image.Attributes[GameAttributes.Untargetable] = false; Image.Attributes.BroadcastChangedIfRevealed(); } yield break; @@ -4038,13 +4033,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_A > 0) //Sparkflint { - Target.Attributes[GameAttribute.Amplify_Damage_Percent] += ScriptFormula(20); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] += ScriptFormula(20); + Target.Attributes[GameAttributes.Amplify_Damage_Percent] += ScriptFormula(20); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] += ScriptFormula(20); Target.Attributes.BroadcastChangedIfRevealed(); } if (Rune_D > 0) //Arcanot { - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 1] += ScriptFormula(32); + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 1] += ScriptFormula(32); Target.Attributes.BroadcastChangedIfRevealed(); } @@ -4055,7 +4050,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { //Ancient Guardian if (payload.Target == Target && payload is HitPayload && (payload as HitPayload).IsWeaponDamage) - if (Rune_E > 0 && Target.Attributes[GameAttribute.Hitpoints_Cur] < Target.Attributes[GameAttribute.Hitpoints_Max_Total] * ScriptFormula(35)) + if (Rune_E > 0 && Target.Attributes[GameAttributes.Hitpoints_Cur] < Target.Attributes[GameAttributes.Hitpoints_Max_Total] * ScriptFormula(35)) if (!HasBuff(payload.Target)) { (payload as HitPayload).TotalDamage = 0; @@ -4115,13 +4110,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (Rune_A > 0) { - Target.Attributes[GameAttribute.Amplify_Damage_Percent] -= ScriptFormula(20); - Target.Attributes[GameAttribute.Damage_Percent_All_From_Skills] -= ScriptFormula(20); + Target.Attributes[GameAttributes.Amplify_Damage_Percent] -= ScriptFormula(20); + Target.Attributes[GameAttributes.Damage_Percent_All_From_Skills] -= ScriptFormula(20); Target.Attributes.BroadcastChangedIfRevealed(); } if (Rune_D > 0) { - Target.Attributes[GameAttribute.Resource_Regen_Per_Second, 1] -= ScriptFormula(32); + Target.Attributes[GameAttributes.Resource_Regen_Per_Second, 1] -= ScriptFormula(32); Target.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/BossSkills.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/BossSkills.cs index 7c86869..d3eb08b 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/BossSkills.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/BossSkills.cs @@ -70,7 +70,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - User.Attributes[GameAttribute.Running_Rate] = User.Attributes[GameAttribute.Running_Rate] * EvalTag(PowerKeys.WalkingSpeedMultiplier); + User.Attributes[GameAttributes.Running_Rate] = User.Attributes[GameAttributes.Running_Rate] * EvalTag(PowerKeys.WalkingSpeedMultiplier); User.Attributes.BroadcastChangedIfRevealed(); /* [009863] [Anim] SkeletonKing_Whirlwind_end @@ -86,7 +86,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { base.Remove(); User.PlayActionAnimation(AnimationSno.skeletonking_whirlwind_end); - User.Attributes[GameAttribute.Running_Rate] = User.Attributes[GameAttribute.Running_Rate] / EvalTag(PowerKeys.WalkingSpeedMultiplier); + User.Attributes[GameAttributes.Running_Rate] = User.Attributes[GameAttributes.Running_Rate] / EvalTag(PowerKeys.WalkingSpeedMultiplier); User.Attributes.BroadcastChangedIfRevealed(); } @@ -374,10 +374,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - if (Target.Attributes[GameAttribute.Root_Immune] == false) + if (Target.Attributes[GameAttributes.Root_Immune] == false) { eff.PlayActionAnimation(AnimationSno.a4dun_diablo_bone_prison_closing); - Target.Attributes[GameAttribute.IsRooted] = true; + Target.Attributes[GameAttributes.IsRooted] = true; Target.Attributes.BroadcastChangedIfRevealed(); } @@ -387,7 +387,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { eff.PlayActionAnimation(AnimationSno.a4dun_diablo_bone_prison_opening); base.Remove(); - Target.Attributes[GameAttribute.IsRooted] = false; + Target.Attributes[GameAttributes.IsRooted] = false; Target.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/MonsterAffixSkill.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/MonsterAffixSkill.cs index b2eee2a..84dfad8 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/MonsterAffixSkill.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/MonsterAffixSkill.cs @@ -3,11 +3,7 @@ using DiIiS_NA.GameServer.Core.Types.Math; using DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { @@ -154,9 +150,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Hitpoints_Max] *= 2f; - if (Target.Attributes[GameAttribute.Hitpoints_Max] / 2f == Target.Attributes[GameAttribute.Hitpoints_Cur]) - Target.Attributes[GameAttribute.Hitpoints_Cur] = Target.Attributes[GameAttribute.Hitpoints_Max]; + Target.Attributes[GameAttributes.Hitpoints_Max] *= 2f; + if (Target.Attributes[GameAttributes.Hitpoints_Max] / 2f == Target.Attributes[GameAttributes.Hitpoints_Cur]) + Target.Attributes[GameAttributes.Hitpoints_Cur] = Target.Attributes[GameAttributes.Hitpoints_Max]; Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -164,9 +160,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Hitpoints_Max] /= 2f; - if (Target.Attributes[GameAttribute.Hitpoints_Max] < Target.Attributes[GameAttribute.Hitpoints_Cur]) - Target.Attributes[GameAttribute.Hitpoints_Cur] = Target.Attributes[GameAttribute.Hitpoints_Max]; + Target.Attributes[GameAttributes.Hitpoints_Max] /= 2f; + if (Target.Attributes[GameAttributes.Hitpoints_Max] < Target.Attributes[GameAttributes.Hitpoints_Cur]) + Target.Attributes[GameAttributes.Hitpoints_Cur] = Target.Attributes[GameAttributes.Hitpoints_Max]; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -259,9 +255,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations if (!base.Apply()) return false; - if (Target.Attributes[GameAttribute.Root_Immune] == false) + if (Target.Attributes[GameAttributes.Root_Immune] == false) { - Target.Attributes[GameAttribute.IsRooted] = true; + Target.Attributes[GameAttributes.IsRooted] = true; Target.Attributes.BroadcastChangedIfRevealed(); } Target.World.BroadcastIfRevealed(plr => new MessageSystem.Message.Definitions.ACD.ACDTranslateSyncMessage() { ActorId = Target.DynamicID(plr), Position = Target.Position, Snap = false }, Target); @@ -271,7 +267,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.IsRooted] = false; + Target.Attributes[GameAttributes.IsRooted] = false; Target.Attributes.BroadcastChangedIfRevealed(); } } @@ -288,7 +284,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations { if (!base.Apply()) return false; - Target.Attributes[GameAttribute.Root_Immune] = true; + Target.Attributes[GameAttributes.Root_Immune] = true; Target.Attributes.BroadcastChangedIfRevealed(); return true; @@ -296,7 +292,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations public override void Remove() { base.Remove(); - Target.Attributes[GameAttribute.Root_Immune] = false; + Target.Attributes[GameAttributes.Root_Immune] = false; Target.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/SingleProjectileSkill.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/SingleProjectileSkill.cs index e558000..9a2e687 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/SingleProjectileSkill.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Implementations/MonsterSkills/SingleProjectileSkill.cs @@ -3,8 +3,6 @@ using System.Collections.Generic; using DiIiS_NA.GameServer.Core.Types.Math; using DiIiS_NA.GameServer.GSSystem.ActorSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; -using System.Text; -using System.Threading.Tasks; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; using DiIiS_NA.GameServer.MessageSystem; @@ -479,7 +477,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Implementations.MonsterSkills { public override IEnumerable Main() { - if (User.Attributes[GameAttribute.Hitpoints_Cur] < User.Attributes[GameAttribute.Hitpoints_Max_Total]) + if (User.Attributes[GameAttributes.Hitpoints_Cur] < User.Attributes[GameAttributes.Hitpoints_Max_Total]) { for (int i = 0; i < 4; i++) { diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/AttackPayload.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/AttackPayload.cs index acd9f46..d4a1ced 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/AttackPayload.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/AttackPayload.cs @@ -6,8 +6,6 @@ using DiIiS_NA.GameServer.MessageSystem; using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads @@ -139,7 +137,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads private bool _DoCriticalHit(Actor user, Actor target, float chcBonus = 0f) { - if (target.Attributes[GameAttribute.Ignores_Critical_Hits]) return false; + if (target.Attributes[GameAttributes.Ignores_Critical_Hits]) return false; //Monk -> Exploding Palm if (Context.PowerSNO == 97328 && Context.Rune_E <= 0) return false; @@ -165,7 +163,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads target.World.BuffManager.RemoveBuffs(target, SkillsSystem.Skills.Crusader.FaithGenerators.Punish); } - var totalCritChance = user.Attributes[GameAttribute.Weapon_Crit_Chance] + user.Attributes[GameAttribute.Crit_Percent_Bonus_Capped] + user.Attributes[GameAttribute.Crit_Percent_Bonus_Uncapped] + user.Attributes[GameAttribute.Power_Crit_Percent_Bonus, Context.PowerSNO] + target.Attributes[GameAttribute.Bonus_Chance_To_Be_Crit_Hit] + additionalCritChance; + var totalCritChance = user.Attributes[GameAttributes.Weapon_Crit_Chance] + user.Attributes[GameAttributes.Crit_Percent_Bonus_Capped] + user.Attributes[GameAttributes.Crit_Percent_Bonus_Uncapped] + user.Attributes[GameAttributes.Power_Crit_Percent_Bonus, Context.PowerSNO] + target.Attributes[GameAttributes.Bonus_Chance_To_Be_Crit_Hit] + additionalCritChance; if (totalCritChance > 0.85f) totalCritChance = 0.85f; return PowerContext.Rand.NextDouble() < totalCritChance; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/DeathPayload.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/DeathPayload.cs index b72984e..f02eda2 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/DeathPayload.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/DeathPayload.cs @@ -61,10 +61,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (Target is Player plr) { if(plr.World.Game.NephalemGreater) - plr.Attributes[GameAttribute.Tiered_Loot_Run_Death_Count]++; + plr.Attributes[GameAttributes.Tiered_Loot_Run_Death_Count]++; if (plr.SkillSet.HasPassive(218501) && plr.World.BuffManager.GetFirstBuff(plr) == null) //SpiritWessel (wd) { - plr.Attributes[GameAttribute.Hitpoints_Cur] = plr.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.15f; + plr.Attributes[GameAttributes.Hitpoints_Cur] = plr.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.15f; plr.Attributes.BroadcastChangedIfRevealed(); plr.World.BuffManager.AddBuff(plr, plr, new ActorGhostedBuff()); plr.World.BuffManager.AddBuff(plr, plr, new SpiritVesselCooldownBuff()); @@ -72,8 +72,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads } if (plr.SkillSet.HasPassive(156484) && plr.World.BuffManager.GetFirstBuff(plr) == null) //NearDeathExperience (monk) { - plr.Attributes[GameAttribute.Hitpoints_Cur] = plr.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.35f; - plr.Attributes[GameAttribute.Resource_Cur, 3] = plr.Attributes[GameAttribute.Resource_Max_Total, 3] * 0.35f; + plr.Attributes[GameAttributes.Hitpoints_Cur] = plr.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.35f; + plr.Attributes[GameAttributes.Resource_Cur, 3] = plr.Attributes[GameAttributes.Resource_Max_Total, 3] * 0.35f; plr.Attributes.BroadcastChangedIfRevealed(); plr.World.BuffManager.AddBuff(plr, plr, new NearDeathExperienceCooldownBuff()); return; @@ -85,7 +85,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (hireling.Dead) { - hireling.Attributes[GameAttribute.Hitpoints_Cur] = hireling.Attributes[GameAttribute.Hitpoints_Max_Total]; + hireling.Attributes[GameAttributes.Hitpoints_Cur] = hireling.Attributes[GameAttributes.Hitpoints_Max_Total]; hireling.Attributes.BroadcastChangedIfRevealed(); hireling.Dead = false; } @@ -100,9 +100,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads var positionOfDeath = Target.Position; if (!Target.World.Game.Working) return; - if (Target.Attributes.Contains(GameAttribute.Quest_Monster)) + if (Target.Attributes.Contains(GameAttributes.Quest_Monster)) { - Target.Attributes[GameAttribute.Quest_Monster] = false; + Target.Attributes[GameAttributes.Quest_Monster] = false; Target.Attributes.BroadcastChangedIfRevealed(); } @@ -147,8 +147,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (Context != null) if (Context.User is Player player) //Hitpoints_On_Kill - if (player.Attributes[GameAttribute.Hitpoints_On_Kill] > 0) - player.AddHP(player.Attributes[GameAttribute.Hitpoints_On_Kill]); + if (player.Attributes[GameAttributes.Hitpoints_On_Kill] > 0) + player.AddHP(player.Attributes[GameAttributes.Hitpoints_On_Kill]); // HACK: add to hackish list thats used to defer deleting actor and filter it from powers targetting if (!(Target is Boss)) @@ -190,7 +190,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (Target is Champion) { bool championsAlive = Target.GetActorsInRange(1000).Where(c => - c.GroupId == Target.GroupId && c.Attributes[GameAttribute.Hitpoints_Cur] > 0).ToList().Count > 0; + c.GroupId == Target.GroupId && c.Attributes[GameAttributes.Hitpoints_Cur] > 0).ToList().Count > 0; if (championsAlive) LootAndExp = false; } @@ -259,8 +259,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads Target.World.BuffManager.RemoveAllBuffs(Target); Target.World.PowerManager.CancelAllPowers(Target); - Target.Attributes[GameAttribute.Deleted_On_Server] = true; - Target.Attributes[GameAttribute.Could_Have_Ragdolled] = true; + Target.Attributes[GameAttributes.Deleted_On_Server] = true; + Target.Attributes[GameAttributes.Could_Have_Ragdolled] = true; Target.Attributes.BroadcastChangedIfRevealed(); Target.World.BroadcastIfRevealed(plr => new DeathFadeTimeMessage() @@ -272,11 +272,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads }, Target); if (Context?.User != null) - if (Math.Abs(Context.User.Attributes[GameAttribute.Item_Power_Passive, 247640] - 1) < + if (Math.Abs(Context.User.Attributes[GameAttributes.Item_Power_Passive, 247640] - 1) < Globals.FLOAT_TOLERANCE || - Math.Abs(Context.User.Attributes[GameAttribute.Item_Power_Passive, 249963] - 1) < + Math.Abs(Context.User.Attributes[GameAttributes.Item_Power_Passive, 249963] - 1) < Globals.FLOAT_TOLERANCE || - Math.Abs(Context.User.Attributes[GameAttribute.Item_Power_Passive, 249954] - 1) < + Math.Abs(Context.User.Attributes[GameAttributes.Item_Power_Passive, 249954] - 1) < Globals.FLOAT_TOLERANCE || (float)FastRandom.Instance.NextDouble() < 0.1f || Target.World.SNO == WorldSno.a1dun_random_level01) @@ -321,7 +321,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (Context != null) if (Context.User is Player player && - Math.Abs(player.Attributes[GameAttribute.Level] - Target.Attributes[GameAttribute.Level]) < 5) + Math.Abs(player.Attributes[GameAttributes.Level] - Target.Attributes[GameAttributes.Level]) < 5) player.KilledSeasonalTempCount++; if (Context?.User is Player plr2) @@ -408,18 +408,18 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads foreach (Player plr in players) { int grantedExp = 0; - if (plr.Attributes[GameAttribute.Level] <= Target.Attributes[GameAttribute.Level]) - grantedExp = (int)(Player.LevelBorders[plr.Attributes[GameAttribute.Level]] / - (40 * Target.Attributes[GameAttribute.Level] * 0.85f) * + if (plr.Attributes[GameAttributes.Level] <= Target.Attributes[GameAttributes.Level]) + grantedExp = (int)(Player.LevelBorders[plr.Attributes[GameAttributes.Level]] / + (40 * Target.Attributes[GameAttributes.Level] * 0.85f) * (Target is Monster monster1 ? Math.Min(monster1.HpMultiplier, 3f) : 1f)); else - grantedExp = (int)(Player.LevelBorders[plr.Attributes[GameAttribute.Level]] / - (40 * Target.Attributes[GameAttribute.Level] * 0.85f) * (1 - - Math.Abs(plr.Attributes[GameAttribute.Level] - Target.Attributes[GameAttribute.Level]) / + grantedExp = (int)(Player.LevelBorders[plr.Attributes[GameAttributes.Level]] / + (40 * Target.Attributes[GameAttributes.Level] * 0.85f) * (1 - + Math.Abs(plr.Attributes[GameAttributes.Level] - Target.Attributes[GameAttributes.Level]) / 20)); - grantedExp = (int)(grantedExp * (plr.Attributes[GameAttribute.Experience_Bonus_Percent] + 1)); - grantedExp += (int)plr.Attributes[GameAttribute.Experience_Bonus]; + grantedExp = (int)(grantedExp * (plr.Attributes[GameAttributes.Experience_Bonus_Percent] + 1)); + grantedExp += (int)plr.Attributes[GameAttributes.Experience_Bonus]; @@ -430,8 +430,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads float tempExp = grantedExp * GameServerConfig.Instance.RateExp; plr.UpdateExp(Math.Max((int)tempExp, 1)); - var a = (int)plr.Attributes[GameAttribute.Experience_Bonus]; - var a1 = (int)plr.Attributes[GameAttribute.Experience_Bonus_Percent]; + var a = (int)plr.Attributes[GameAttributes.Experience_Bonus]; + var a1 = (int)plr.Attributes[GameAttributes.Experience_Bonus_Percent]; plr.KilledMonstersTempCount++; } @@ -452,7 +452,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (PowerMath.Distance2D(plr.Position, monster.Position) >= 45f) plr.AddAchievementCounter(74987243307061, 1); - if (monster.Attributes[GameAttribute.Feared]) + if (monster.Attributes[GameAttributes.Feared]) plr.AddAchievementCounter(74987243307064, 1); if (Context.PowerSNO == 75301) @@ -467,20 +467,20 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (plr.Toon.Class == ToonClass.Monk) { - if (plr.Attributes[GameAttribute.Resource_Cur, 3] < - plr.Attributes[GameAttribute.Resource_Max_Total, 3]) + if (plr.Attributes[GameAttributes.Resource_Cur, 3] < + plr.Attributes[GameAttributes.Resource_Max_Total, 3]) plr.AddAchievementCounter(74987243307550, 1); } if (plr.Toon.Class == ToonClass.Wizard) { - if (monster.Attributes[GameAttribute.Frozen]) + if (monster.Attributes[GameAttributes.Frozen]) plr.AddAchievementCounter(74987243307585, 1); } if (plr.Toon.Class == ToonClass.WitchDoctor) { - if (Context.User.Attributes[GameAttribute.Team_Override] == 1) + if (Context.User.Attributes[GameAttributes.Team_Override] == 1) plr.AddAchievementCounter(74987243307564, 1); } @@ -511,10 +511,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads } if (plr.SkillSet.HasPassive(218191) && PowerMath.Distance2D(plr.Position, Target.Position) <= - 20f + plr.Attributes[GameAttribute.Gold_PickUp_Radius]) //GraveInjustice (WD) + 20f + plr.Attributes[GameAttributes.Gold_PickUp_Radius]) //GraveInjustice (WD) { - plr.AddHP(plr.Attributes[GameAttribute.Hitpoints_Max_Total] / 100f); - plr.GeneratePrimaryResource(plr.Attributes[GameAttribute.Resource_Max_Total, 0] / 100f); + plr.AddHP(plr.Attributes[GameAttributes.Hitpoints_Max_Total] / 100f); + plr.GeneratePrimaryResource(plr.Attributes[GameAttributes.Resource_Max_Total, 0] / 100f); foreach (var cdBuff in plr.World.BuffManager.GetBuffs(plr)) cdBuff.Reduce(60); } @@ -532,7 +532,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (Target.World.BuffManager.HasBuff(Target)) { - Context.User.AddHP(Context.User.Attributes[GameAttribute.Hitpoints_On_Kill_Total] * 2f); + Context.User.AddHP(Context.User.Attributes[GameAttributes.Hitpoints_On_Kill_Total] * 2f); } @@ -544,27 +544,27 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads var avatar = new AvatarMelee(plr.World, Context, 0, 1f, Context.WaitSeconds(7f)); avatar.Brain.DeActivate(); avatar.Position = PowerContext.RandomDirection(plr.Position, 3f, 8f); - avatar.Attributes[GameAttribute.Untargetable] = true; + avatar.Attributes[GameAttributes.Untargetable] = true; avatar.EnterWorld(avatar.Position); Task.Delay(1000).ContinueWith(d => { (avatar as Minion).Brain.Activate(); - avatar.Attributes[GameAttribute.Untargetable] = false; + avatar.Attributes[GameAttributes.Untargetable] = false; avatar.Attributes.BroadcastChangedIfRevealed(); }); } if (plr.SkillSet.HasPassive(208571) && PowerMath.Distance2D(plr.Position, Target.Position) <= - 12f + plr.Attributes[GameAttribute.Gold_PickUp_Radius] && + 12f + plr.Attributes[GameAttributes.Gold_PickUp_Radius] && FastRandom.Instance.Next(100) < 5) //CircleOfLife (WD) { var dog = new ZombieDog(plr.World, plr, 0); dog.Brain.DeActivate(); dog.Position = PowerContext.RandomDirection(plr.Position, 3f, 8f); - dog.Attributes[GameAttribute.Untargetable] = true; + dog.Attributes[GameAttributes.Untargetable] = true; dog.EnterWorld(dog.Position); dog.PlayActionAnimation(AnimationSno.zombiedog_summon_01); Context.DogsSummoned++; @@ -572,7 +572,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads Task.Delay(1000).ContinueWith(d => { dog.Brain.Activate(); - dog.Attributes[GameAttribute.Untargetable] = false; + dog.Attributes[GameAttributes.Untargetable] = false; dog.Attributes.BroadcastChangedIfRevealed(); dog.PlayActionAnimation(AnimationSno.zombiedog_idle_01); }); @@ -595,7 +595,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads Logger.Trace( $"$[green3_1]${Context?.User?.GetType().Name}$[/]$ killed monster, id: $[red]${{0}}$[/]$, level $[red]${{1}}$[/]$", - Target.SNO, Target.Attributes[GameAttribute.Level]); + Target.SNO, Target.Attributes[GameAttributes.Level]); //handling quest triggers @@ -730,13 +730,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads } //Nephalem Rift Boss Killed - if (Target.Attributes[GameAttribute.Is_Loot_Run_Boss]) + if (Target.Attributes[GameAttributes.Is_Loot_Run_Boss]) { Target.World.Game.ActiveNephalemKilledBoss = true; foreach (var plr in Target.World.Game.Players.Values) { //Enable banner /advocaite - plr.Attributes[GameAttribute.Banner_Usable] = true; + plr.Attributes[GameAttributes.Banner_Usable] = true; if (Target.World.Game.NephalemGreater) { plr.InGameClient.SendMessage(new QuestCounterMessage() @@ -757,13 +757,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads Failed = false }); - plr.Attributes[GameAttribute.Jewel_Upgrades_Max] = 3; - plr.Attributes[GameAttribute.Jewel_Upgrades_Used] = 0; - plr.Attributes[GameAttribute.Jewel_Upgrades_Bonus] = 0; - if (plr.Attributes[GameAttribute.Tiered_Loot_Run_Death_Count] == 0) - plr.Attributes[GameAttribute.Jewel_Upgrades_Bonus]++; + plr.Attributes[GameAttributes.Jewel_Upgrades_Max] = 3; + plr.Attributes[GameAttributes.Jewel_Upgrades_Used] = 0; + plr.Attributes[GameAttributes.Jewel_Upgrades_Bonus] = 0; + if (plr.Attributes[GameAttributes.Tiered_Loot_Run_Death_Count] == 0) + plr.Attributes[GameAttributes.Jewel_Upgrades_Bonus]++; if (plr.InGameClient.Game.NephalemBuff) - plr.Attributes[GameAttribute.Jewel_Upgrades_Bonus]++; + plr.Attributes[GameAttributes.Jewel_Upgrades_Bonus]++; plr.InGameClient.Game.LastTieredRiftTimeout = (int)((plr.InGameClient.Game.TiredRiftTimer.TimeoutTick - @@ -833,10 +833,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads var orek = hubWorld.GetActorBySNO(ActorSno._x1_lr_nephalem) as InteractiveNPC; orek.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(340878)); orek.ForceConversationSNO = 340878; - orek.Attributes[GameAttribute.Conversation_Icon, 0] = 2; - orek.Attributes[GameAttribute.Conversation_Icon, 1] = 2; - orek.Attributes[GameAttribute.Conversation_Icon, 2] = 2; - orek.Attributes[GameAttribute.Conversation_Icon, 3] = 2; + orek.Attributes[GameAttributes.Conversation_Icon, 0] = 2; + orek.Attributes[GameAttributes.Conversation_Icon, 1] = 2; + orek.Attributes[GameAttributes.Conversation_Icon, 2] = 2; + orek.Attributes[GameAttributes.Conversation_Icon, 3] = 2; orek.Attributes.BroadcastChangedIfRevealed(); // Unique spawn Target.World.SpawnBloodShards(Target, plr, RandomHelper.Next(10, 30)); @@ -853,7 +853,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (Context != null) { if (Context.User is Player && Target.World.Game.MonsterLevel >= 70 && - Context.User.Attributes[GameAttribute.Level] == 70) //keys + Context.User.Attributes[GameAttributes.Level] == 70) //keys { switch (Target) { @@ -931,15 +931,15 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads //Logger.Debug("seed: {0}", seed); var dropRates = Target.World.Game.IsSeasoned ? LootManager.GetSeasonalDropRates((int)Target.Quality, - Target.Attributes[GameAttribute.Level]) - : LootManager.GetDropRates((int)Target.Quality, Target.Attributes[GameAttribute.Level]); + Target.Attributes[GameAttributes.Level]) + : LootManager.GetDropRates((int)Target.Quality, Target.Attributes[GameAttributes.Level]); float seed = (float)FastRandom.Instance.NextDouble(); foreach (float rate in dropRates) { // if seed is less than the drop rate, drop the item if (seed < rate * (1f - + plr.Attributes[GameAttribute.Magic_Find]) + + plr.Attributes[GameAttributes.Magic_Find]) * GameServerConfig.Instance.RateDrop) { //Logger.Debug("rate: {0}", rate); @@ -1053,7 +1053,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (RandomHelper.Next(0, 100) > 40 && ((Player)Context.User).Toon.Class == ToonClass.Necromancer) { var flesh = Context.User.World.SpawnMonster(ActorSno._p6_necro_corpse_flesh, positionOfDeath); - flesh.Attributes[GameAttribute.Necromancer_Corpse_Source_Monster_SNO] = (int)Target.SNO; + flesh.Attributes[GameAttributes.Necromancer_Corpse_Source_Monster_SNO] = (int)Target.SNO; flesh.Attributes.BroadcastChangedIfRevealed(); } } @@ -1187,7 +1187,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads { //death implementation Player player = (Player)Target; - if (Math.Abs(player.Attributes[GameAttribute.Item_Power_Passive, 248629] - 1) < Globals.FLOAT_TOLERANCE) + if (Math.Abs(player.Attributes[GameAttributes.Item_Power_Passive, 248629] - 1) < Globals.FLOAT_TOLERANCE) player.PlayEffectGroup(248680); player.StopCasting(); Target.World.BuffManager.RemoveAllBuffs(Target, false); @@ -1219,7 +1219,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads player.InGameClient.SendMessage(new DeathPlayerMesage(Opcodes.DeathPlayerMesage) { PlayerIndex = player.PlayerIndex, }); } else - if (!player.World.Game.Players.Values.Any(p => p.Attributes[GameAttribute.TeamID] == player.Attributes[GameAttribute.TeamID] && !p.Dead)) + if (!player.World.Game.Players.Values.Any(p => p.Attributes[GameAttributes.TeamID] == player.Attributes[GameAttributes.TeamID] && !p.Dead)) player.World.Game.StartPvPRound(); /*if (player.World.Game.IsHardcore) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/HitPayload.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/HitPayload.cs index e176e37..2d8f44a 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/HitPayload.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Payloads/HitPayload.cs @@ -16,7 +16,6 @@ using DiIiS_NA.LoginServer.Toons; using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads @@ -84,9 +83,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads { ElementDamages[entry.DamageType] += entry.WeaponDamageMultiplier * ( - Context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0] + ((int)entry.DamageType.HitEffect > 0 ? Context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, (int)entry.DamageType.HitEffect] : 0) + Context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0] + ((int)entry.DamageType.HitEffect > 0 ? Context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, (int)entry.DamageType.HitEffect] : 0) + - ((float)PowerContext.Rand.NextDouble() * (Context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] + ((int)entry.DamageType.HitEffect > 0 ? Context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, (int)entry.DamageType.HitEffect] : 0))) + ((float)PowerContext.Rand.NextDouble() * (Context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] + ((int)entry.DamageType.HitEffect > 0 ? Context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, (int)entry.DamageType.HitEffect] : 0))) ); } else @@ -97,24 +96,24 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads var dmg_mul = (Context.User as Minion).DamageCoefficient; ElementDamages[entry.DamageType] += entry.WeaponDamageMultiplier * dmg_mul * ( - master.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0] + ((int)entry.DamageType.HitEffect > 0 ? master.Attributes[GameAttribute.Damage_Weapon_Min_Total, (int)entry.DamageType.HitEffect] : 0) + - ((float)PowerContext.Rand.NextDouble() * (master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0] + ((int)entry.DamageType.HitEffect > 0 ? master.Attributes[GameAttribute.Damage_Weapon_Delta_Total, (int)entry.DamageType.HitEffect] : 0))) + master.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0] + ((int)entry.DamageType.HitEffect > 0 ? master.Attributes[GameAttributes.Damage_Weapon_Min_Total, (int)entry.DamageType.HitEffect] : 0) + + ((float)PowerContext.Rand.NextDouble() * (master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0] + ((int)entry.DamageType.HitEffect > 0 ? master.Attributes[GameAttributes.Damage_Weapon_Delta_Total, (int)entry.DamageType.HitEffect] : 0))) ); break; default: - ElementDamages[entry.DamageType] += entry.WeaponDamageMultiplier * (Context.User.Attributes[GameAttribute.Damage_Weapon_Min_Total, 0] + ((float)PowerContext.Rand.NextDouble() * Context.User.Attributes[GameAttribute.Damage_Weapon_Delta_Total, 0])); + ElementDamages[entry.DamageType] += entry.WeaponDamageMultiplier * (Context.User.Attributes[GameAttributes.Damage_Weapon_Min_Total, 0] + ((float)PowerContext.Rand.NextDouble() * Context.User.Attributes[GameAttributes.Damage_Weapon_Delta_Total, 0])); break; } - ElementDamages[entry.DamageType] *= 1f + Context.User.Attributes[GameAttribute.Damage_Type_Percent_Bonus, (int)entry.DamageType.HitEffect] + Context.User.Attributes[GameAttribute.Damage_Dealt_Percent_Bonus, (int)entry.DamageType.HitEffect]; + ElementDamages[entry.DamageType] *= 1f + Context.User.Attributes[GameAttributes.Damage_Type_Percent_Bonus, (int)entry.DamageType.HitEffect] + Context.User.Attributes[GameAttributes.Damage_Dealt_Percent_Bonus, (int)entry.DamageType.HitEffect]; - if (Target.Attributes[GameAttribute.Immunity, (int)entry.DamageType.HitEffect] == true) ElementDamages[entry.DamageType] = 0f; //Immunity + if (Target.Attributes[GameAttributes.Immunity, (int)entry.DamageType.HitEffect] == true) ElementDamages[entry.DamageType] = 0f; //Immunity switch (Target) { case Player: - ElementDamages[entry.DamageType] *= ReductionFromResistance(Target.Attributes[GameAttribute.Resistance_Total, (int)entry.DamageType.HitEffect], Context.User.Attributes[GameAttribute.Level]); - ElementDamages[entry.DamageType] *= 1f - Target.Attributes[GameAttribute.Damage_Percent_Reduction_From_Type, (int)entry.DamageType.HitEffect] + Target.Attributes[GameAttribute.Amplify_Damage_Type_Percent, (int)entry.DamageType.HitEffect]; + ElementDamages[entry.DamageType] *= ReductionFromResistance(Target.Attributes[GameAttributes.Resistance_Total, (int)entry.DamageType.HitEffect], Context.User.Attributes[GameAttributes.Level]); + ElementDamages[entry.DamageType] *= 1f - Target.Attributes[GameAttributes.Damage_Percent_Reduction_From_Type, (int)entry.DamageType.HitEffect] + Target.Attributes[GameAttributes.Amplify_Damage_Type_Percent, (int)entry.DamageType.HitEffect]; if ((Target as Player).SkillSet.HasPassive(205491) && (int)entry.DamageType.HitEffect != 0) ElementDamages[entry.DamageType] *= 0.8f; if((Target as Player).SkillSet.HasSkill(462239)) @@ -123,44 +122,44 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads TotalDamage *= 1f - (Target as Player).Revived.Count * 0.03f; break; case Hireling: - ElementDamages[entry.DamageType] *= ReductionFromResistance(Target.Attributes[GameAttribute.Resistance_Total, (int)entry.DamageType.HitEffect], Context.User.Attributes[GameAttribute.Level]); - ElementDamages[entry.DamageType] *= 1f - Target.Attributes[GameAttribute.Damage_Percent_Reduction_From_Type, (int)entry.DamageType.HitEffect] + Target.Attributes[GameAttribute.Amplify_Damage_Type_Percent, (int)entry.DamageType.HitEffect]; + ElementDamages[entry.DamageType] *= ReductionFromResistance(Target.Attributes[GameAttributes.Resistance_Total, (int)entry.DamageType.HitEffect], Context.User.Attributes[GameAttributes.Level]); + ElementDamages[entry.DamageType] *= 1f - Target.Attributes[GameAttributes.Damage_Percent_Reduction_From_Type, (int)entry.DamageType.HitEffect] + Target.Attributes[GameAttributes.Amplify_Damage_Type_Percent, (int)entry.DamageType.HitEffect]; break; case Minion: - ElementDamages[entry.DamageType] *= ReductionFromResistance((Target as Minion).Master.Attributes[GameAttribute.Resistance_Total, (int)entry.DamageType.HitEffect], Context.User.Attributes[GameAttribute.Level]); + ElementDamages[entry.DamageType] *= ReductionFromResistance((Target as Minion).Master.Attributes[GameAttributes.Resistance_Total, (int)entry.DamageType.HitEffect], Context.User.Attributes[GameAttributes.Level]); break; } } TotalDamage = ElementDamages.Sum(kv => kv.Value); - if (Context.User.Attributes[GameAttribute.God] == true) + if (Context.User.Attributes[GameAttributes.God] == true) TotalDamage = 0f; // apply critical damage boost if (criticalHit) { - TotalDamage *= (1f + Context.User.Attributes[GameAttribute.Crit_Damage_Percent]); - if (Context.User is Player player && player.Toon.Class == ToonClass.Wizard && player.Attributes[GameAttribute.Resource_On_Crit, 1] > 0) + TotalDamage *= (1f + Context.User.Attributes[GameAttributes.Crit_Damage_Percent]); + if (Context.User is Player player && player.Toon.Class == ToonClass.Wizard && player.Attributes[GameAttributes.Resource_On_Crit, 1] > 0) if (FastRandom.Instance.NextDouble() < Context.GetProcCoefficient()) - (Context.User as Player).GeneratePrimaryResource(Context.User.Attributes[GameAttribute.Resource_On_Crit, 1]); + (Context.User as Player).GeneratePrimaryResource(Context.User.Attributes[GameAttributes.Resource_On_Crit, 1]); } - var targetArmor = target.Attributes[GameAttribute.Armor_Total]; - var attackerLevel = attackPayload.Context.User.Attributes[GameAttribute.Level]; + var targetArmor = target.Attributes[GameAttributes.Armor_Total]; + var attackerLevel = attackPayload.Context.User.Attributes[GameAttributes.Level]; TotalDamage *= ReductionFromArmor(targetArmor, attackerLevel); //this.TotalDamage *= 1f - target.Attributes[GameAttribute.Armor_Bonus_Percent]; //this.TotalDamage *= 1f + target.Attributes[GameAttribute.Amplify_Damage_Percent]; //this.TotalDamage *= 1f + attackPayload.Context.User.Attributes[GameAttribute.Multiplicative_Damage_Percent_Bonus_No_Pets]; - TotalDamage *= 1f - attackPayload.Context.User.Attributes[GameAttribute.Damage_Done_Reduction_Percent]; - TotalDamage *= 1f + Context.User.Attributes[GameAttribute.Power_Damage_Percent_Bonus, attackPayload.Context.PowerSNO]; + TotalDamage *= 1f - attackPayload.Context.User.Attributes[GameAttributes.Damage_Done_Reduction_Percent]; + TotalDamage *= 1f + Context.User.Attributes[GameAttributes.Power_Damage_Percent_Bonus, attackPayload.Context.PowerSNO]; if (PowerMath.Distance2D(Context.User.Position, Target.Position) < 6f) - TotalDamage *= 1f - Target.Attributes[GameAttribute.Damage_Percent_Reduction_From_Melee]; + TotalDamage *= 1f - Target.Attributes[GameAttributes.Damage_Percent_Reduction_From_Melee]; else - TotalDamage *= 1f - Target.Attributes[GameAttribute.Damage_Percent_Reduction_From_Ranged]; + TotalDamage *= 1f - Target.Attributes[GameAttributes.Damage_Percent_Reduction_From_Ranged]; DominantDamageType = ElementDamages.OrderByDescending(kv => kv.Value).FirstOrDefault().Key; if (DominantDamageType == null) DominantDamageType = DamageType.Physical; @@ -172,7 +171,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads { TotalDamage = TotalDamage * (1 + (plr.PrimaryAttribute / 100f)); if (FastRandom.Instance.NextDouble() < Context.GetProcCoefficient()) - plr.GeneratePrimaryResource(plr.Attributes[GameAttribute.Resource_On_Hit]); + plr.GeneratePrimaryResource(plr.Attributes[GameAttributes.Resource_On_Hit]); switch (plr.Toon.Class) { @@ -192,11 +191,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads plr.World.BuffManager.AddBuff(plr, plr, new VisionQuestBuff()); if (FastRandom.Instance.NextDouble() < Context.GetProcCoefficient()) - plr.GeneratePrimaryResource(plr.Attributes[GameAttribute.Resource_On_Hit, 0]); + plr.GeneratePrimaryResource(plr.Attributes[GameAttributes.Resource_On_Hit, 0]); break; case ToonClass.Barbarian: if (plr.SkillSet.HasPassive(205187)) - if (plr.Attributes[GameAttribute.Resource_Max_Total, 2] == plr.Attributes[GameAttribute.Resource_Cur, 2]) + if (plr.Attributes[GameAttributes.Resource_Max_Total, 2] == plr.Attributes[GameAttributes.Resource_Cur, 2]) TotalDamage *= 1.25f; if (plr.SkillSet.HasPassive(205133)) @@ -204,7 +203,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads TotalDamage *= 1.2f; if (plr.SkillSet.HasPassive(205175)) - if (Target.Attributes[GameAttribute.Hitpoints_Cur] < (Target.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.3f)) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] < (Target.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.3f)) TotalDamage *= 1.4f; break; case ToonClass.DemonHunter: @@ -213,14 +212,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads TotalDamage *= 1.2f; if (plr.SkillSet.HasPassive(352920)) - if (Target.Attributes[GameAttribute.Hitpoints_Cur] > (Target.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.75f)) + if (Target.Attributes[GameAttributes.Hitpoints_Cur] > (Target.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.75f)) TotalDamage *= 1.4f; if (plr.SkillSet.HasPassive(218350) && criticalHit) if (FastRandom.Instance.NextDouble() < Context.GetProcCoefficient()) plr.GenerateSecondaryResource(1f); - if (plr.SkillSet.HasPassive(155721) && Target.Attributes[GameAttribute.Slow]) + if (plr.SkillSet.HasPassive(155721) && Target.Attributes[GameAttributes.Slow]) TotalDamage *= 1.20f; if (plr.SkillSet.HasPassive(155725)) @@ -257,7 +256,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads plr.World.BuffManager.AddBuff(Context.User, Target, new ArmorReduceDebuff(0.1f, TickTimer.WaitSeconds(plr.World.Game, 3f))); if (plr.SkillSet.HasPassive(226301)) //ColdBlooded (Wizard) - if (Target.Attributes[GameAttribute.Frozen] || Target.Attributes[GameAttribute.Chilled]) + if (Target.Attributes[GameAttributes.Frozen] || Target.Attributes[GameAttributes.Chilled]) TotalDamage *= 1.1f; if (plr.SkillSet.HasPassive(208471)) //GlassCannon (Wizard) @@ -377,34 +376,34 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (Target is Monster monster) { - TotalDamage *= 1 + plr.Attributes[GameAttribute.Damage_Percent_Bonus_Vs_Monster_Type, monster.MonsterType]; + TotalDamage *= 1 + plr.Attributes[GameAttributes.Damage_Percent_Bonus_Vs_Monster_Type, monster.MonsterType]; if (monster.Quality > 0) - TotalDamage *= 1 + plr.Attributes[GameAttribute.Damage_Percent_Bonus_Vs_Elites]; + TotalDamage *= 1 + plr.Attributes[GameAttributes.Damage_Percent_Bonus_Vs_Elites]; if (attackPayload.Targets.Actors.Count == 1 && !(attackPayload.Context is Buff) && attackPayload.AutomaticHitEffects) { float procCoeff = Context.GetProcCoefficient(); - if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttribute.On_Hit_Fear_Proc_Chance] * procCoeff) + if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttributes.On_Hit_Fear_Proc_Chance] * procCoeff) plr.World.BuffManager.AddBuff(plr, monster, new DebuffFeared(TickTimer.WaitSeconds(plr.World.Game, 1.5f))); - if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttribute.On_Hit_Stun_Proc_Chance] * procCoeff) + if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttributes.On_Hit_Stun_Proc_Chance] * procCoeff) plr.World.BuffManager.AddBuff(plr, monster, new DebuffStunned(TickTimer.WaitSeconds(plr.World.Game, 1.5f))); - if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttribute.On_Hit_Blind_Proc_Chance] * procCoeff) + if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttributes.On_Hit_Blind_Proc_Chance] * procCoeff) plr.World.BuffManager.AddBuff(plr, monster, new DebuffBlind(TickTimer.WaitSeconds(plr.World.Game, 1.5f))); - if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttribute.On_Hit_Freeze_Proc_Chance] * procCoeff) + if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttributes.On_Hit_Freeze_Proc_Chance] * procCoeff) plr.World.BuffManager.AddBuff(plr, monster, new DebuffFrozen(TickTimer.WaitSeconds(plr.World.Game, 1.5f))); - if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttribute.On_Hit_Chill_Proc_Chance] * procCoeff) + if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttributes.On_Hit_Chill_Proc_Chance] * procCoeff) plr.World.BuffManager.AddBuff(plr, monster, new DebuffChilled(0.3f, TickTimer.WaitSeconds(plr.World.Game, 2f))); - if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttribute.On_Hit_Slow_Proc_Chance] * procCoeff) + if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttributes.On_Hit_Slow_Proc_Chance] * procCoeff) plr.World.BuffManager.AddBuff(plr, monster, new DebuffSlowed(0.3f, TickTimer.WaitSeconds(plr.World.Game, 2f))); - if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttribute.On_Hit_Knockback_Proc_Chance] * procCoeff) + if (FastRandom.Instance.NextDouble() < plr.Attributes[GameAttributes.On_Hit_Knockback_Proc_Chance] * procCoeff) plr.World.BuffManager.AddBuff(plr, monster, new KnockbackBuff(3f)); } @@ -413,7 +412,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads break; case Minion mn: TotalDamage *= (1 + (mn.PrimaryAttribute / 100f)); - TotalDamage *= mn.Master.Attributes[GameAttribute.Attacks_Per_Second_Total]; + TotalDamage *= mn.Master.Attributes[GameAttributes.Attacks_Per_Second_Total]; if (mn.Master is Player mstr) { @@ -436,7 +435,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads //check for passives here (incoming damage) case Player playerTarget: { - if (!playerTarget.Attributes[GameAttribute.Cannot_Dodge] && FastRandom.Instance.NextDouble() < playerTarget.DodgeChance) + if (!playerTarget.Attributes[GameAttributes.Cannot_Dodge] && FastRandom.Instance.NextDouble() < playerTarget.DodgeChance) IsDodged = true; switch (playerTarget.Toon.Class) @@ -469,7 +468,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (FastRandom.Instance.NextDouble() < Context.GetProcCoefficient()) playerTarget.GeneratePrimaryResource(2f); - if (playerTarget.SkillSet.HasPassive(205398) && (playerTarget.Attributes[GameAttribute.Hitpoints_Cur] - TotalDamage) < (playerTarget.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.2f)) //Relentless (barbarian) + if (playerTarget.SkillSet.HasPassive(205398) && (playerTarget.Attributes[GameAttributes.Hitpoints_Cur] - TotalDamage) < (playerTarget.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.2f)) //Relentless (barbarian) TotalDamage *= 0.5f; break; } @@ -479,14 +478,14 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (playerTarget.SkillSet.HasPassive(208471)) //GlassCannon (Wizard) TotalDamage *= 1.1f; - if (playerTarget.SkillSet.HasPassive(208547) && TotalDamage > (playerTarget.Attributes[GameAttribute.Hitpoints_Max_Total] * 0.15f)) //Illusionist (Wizard) + if (playerTarget.SkillSet.HasPassive(208547) && TotalDamage > (playerTarget.Attributes[GameAttributes.Hitpoints_Max_Total] * 0.15f)) //Illusionist (Wizard) { foreach (var cdBuff in playerTarget.World.BuffManager.GetBuffs(playerTarget)) if (cdBuff.TargetPowerSNO == 1769 || cdBuff.TargetPowerSNO == 168344) cdBuff.Remove(); } - if (playerTarget.SkillSet.HasPassive(208474) && (playerTarget.Attributes[GameAttribute.Hitpoints_Cur] - TotalDamage) <= 0) //UnstableAnomaly (wizard) + if (playerTarget.SkillSet.HasPassive(208474) && (playerTarget.Attributes[GameAttributes.Hitpoints_Cur] - TotalDamage) <= 0) //UnstableAnomaly (wizard) { if (playerTarget.World.BuffManager.GetFirstBuff(playerTarget) == null) { @@ -527,7 +526,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (playerTarget.World.BuffManager.HasBuff(playerTarget)) //AkaratChampion resurrect once if (playerTarget.World.BuffManager.GetFirstBuff(playerTarget).resurrectActive) - if ((playerTarget.Attributes[GameAttribute.Hitpoints_Cur] - TotalDamage) <= 0) + if ((playerTarget.Attributes[GameAttributes.Hitpoints_Cur] - TotalDamage) <= 0) { playerTarget.World.BuffManager.GetFirstBuff(playerTarget).resurrectActive = false; playerTarget.AddPercentageHP(100); @@ -549,8 +548,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads { var plr = playerOwner; - var masterArmor = plr.Attributes[GameAttribute.Armor_Total]; - var attackLevel = attackPayload.Context.User.Attributes[GameAttribute.Level]; + var masterArmor = plr.Attributes[GameAttributes.Armor_Total]; + var attackLevel = attackPayload.Context.User.Attributes[GameAttributes.Level]; TotalDamage *= ReductionFromArmor(masterArmor, attackLevel); @@ -569,11 +568,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads private void CheckItemProcs(Player user) { - if (Math.Abs(user.Attributes[GameAttribute.Item_Power_Passive, 247724] - 1) < Globals.FLOAT_TOLERANCE && FastRandom.Instance.NextDouble() < 0.2) + if (Math.Abs(user.Attributes[GameAttributes.Item_Power_Passive, 247724] - 1) < Globals.FLOAT_TOLERANCE && FastRandom.Instance.NextDouble() < 0.2) { user.PlayEffectGroup(247770); } - if (Math.Abs(user.Attributes[GameAttribute.Item_Power_Passive, 245741] - 1) < Globals.FLOAT_TOLERANCE && FastRandom.Instance.NextDouble() < 0.2) + if (Math.Abs(user.Attributes[GameAttributes.Item_Power_Passive, 245741] - 1) < Globals.FLOAT_TOLERANCE && FastRandom.Instance.NextDouble() < 0.2) { user.PlayEffectGroup(245747); } @@ -590,7 +589,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (!Target.Visible) return; - if ((Target.Attributes[GameAttribute.Invulnerable] || Target.Attributes[GameAttribute.Immunity]) && Target.World != null) + if ((Target.Attributes[GameAttributes.Invulnerable] || Target.Attributes[GameAttributes.Immunity]) && Target.World != null) { if (Target is not Minion) Target.World.BroadcastIfRevealed(plr => new FloatingNumberMessage() @@ -641,9 +640,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads } plr.DodgesInARow = 0; - if (FastRandom.Instance.NextDouble() < playerActor.Attributes[GameAttribute.Block_Chance_Capped_Total]) + if (FastRandom.Instance.NextDouble() < playerActor.Attributes[GameAttributes.Block_Chance_Capped_Total]) { - TotalDamage -= (float)FastRandom.Instance.NextDouble((double)playerActor.Attributes[GameAttribute.Block_Amount_Total_Min], (double)playerActor.Attributes[GameAttribute.Block_Amount_Total_Max]); + TotalDamage -= (float)FastRandom.Instance.NextDouble((double)playerActor.Attributes[GameAttributes.Block_Amount_Total_Min], (double)playerActor.Attributes[GameAttributes.Block_Amount_Total_Max]); if (TotalDamage < 0f) TotalDamage = 0f; playerActor.World.BroadcastIfRevealed(plr3 => new FloatingNumberMessage() { @@ -689,22 +688,22 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads if (Context.User is Player player) { CheckItemProcs(player); - if (player.Attributes[GameAttribute.Steal_Health_Percent] > 0) - player.AddHP(TotalDamage * Context.User.Attributes[GameAttribute.Steal_Health_Percent]); - if (Context.User.Attributes[GameAttribute.Hitpoints_On_Hit] > 0) - player.AddHP(Context.User.Attributes[GameAttribute.Hitpoints_On_Hit]); + if (player.Attributes[GameAttributes.Steal_Health_Percent] > 0) + player.AddHP(TotalDamage * Context.User.Attributes[GameAttributes.Steal_Health_Percent]); + if (Context.User.Attributes[GameAttributes.Hitpoints_On_Hit] > 0) + player.AddHP(Context.User.Attributes[GameAttributes.Hitpoints_On_Hit]); if (IsCriticalHit) if (player.Toon.Class == ToonClass.Wizard) if (FastRandom.Instance.NextDouble() < Context.GetProcCoefficient()) - player.GeneratePrimaryResource(Context.User.Attributes[GameAttribute.Resource_On_Hit, 1]); + player.GeneratePrimaryResource(Context.User.Attributes[GameAttributes.Resource_On_Hit, 1]); } if (Context.User is Hireling hireling) { - if (hireling.Attributes[GameAttribute.Steal_Health_Percent] > 0) - hireling.AddHP(TotalDamage * hireling.Attributes[GameAttribute.Steal_Health_Percent]); - if (hireling.Attributes[GameAttribute.Hitpoints_On_Hit] > 0) - hireling.AddHP(hireling.Attributes[GameAttribute.Hitpoints_On_Hit]); + if (hireling.Attributes[GameAttributes.Steal_Health_Percent] > 0) + hireling.AddHP(TotalDamage * hireling.Attributes[GameAttributes.Steal_Health_Percent]); + if (hireling.Attributes[GameAttributes.Hitpoints_On_Hit] > 0) + hireling.AddHP(hireling.Attributes[GameAttributes.Hitpoints_On_Hit]); } // make player damage red, all other damage white @@ -746,8 +745,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem.Payloads } // update hp - float newHp = Math.Max(Target.Attributes[GameAttribute.Hitpoints_Cur] - TotalDamage, 0f); - Target.Attributes[GameAttribute.Hitpoints_Cur] = newHp; + float newHp = Math.Max(Target.Attributes[GameAttributes.Hitpoints_Cur] - TotalDamage, 0f); + Target.Attributes[GameAttributes.Hitpoints_Cur] = newHp; Target.Attributes.BroadcastChangedIfRevealed(); //thorns diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/PowerContext.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/PowerContext.cs index 71e9873..4ff3854 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/PowerContext.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/PowerContext.cs @@ -15,11 +15,7 @@ using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.ACD; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem { @@ -71,8 +67,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem public void StartCooldown(float seconds) { - seconds -= User.Attributes[GameAttribute.Power_Cooldown_Reduction, PowerSNO]; - seconds *= (1f - User.Attributes[GameAttribute.Power_Cooldown_Reduction_Percent_All]); + seconds -= User.Attributes[GameAttributes.Power_Cooldown_Reduction, PowerSNO]; + seconds *= (1f - User.Attributes[GameAttributes.Power_Cooldown_Reduction_Percent_All]); StartCooldown(WaitSeconds(seconds)); } @@ -119,8 +115,8 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem { if (User is Player player) { - if (player.Attributes[GameAttribute.Free_Cast_All] != true) - player.UsePrimaryResource(amount - player.Attributes[GameAttribute.Power_Resource_Reduction, PowerSNO]); + if (player.Attributes[GameAttributes.Free_Cast_All] != true) + player.UsePrimaryResource(amount - player.Attributes[GameAttributes.Power_Resource_Reduction, PowerSNO]); } } @@ -136,7 +132,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem { if (User is Player player) { - player.UseSecondaryResource(amount - player.Attributes[GameAttribute.Power_Resource_Reduction, PowerSNO]); + player.UseSecondaryResource(amount - player.Attributes[GameAttributes.Power_Resource_Reduction, PowerSNO]); } } @@ -251,7 +247,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem float radiusCompensation = 5f; foreach (Actor actor in World.QuadTree.Query(new Circle(center.X, center.Y, radius + radiusCompensation + 25f))) { - if (filter(actor) && !actor.Attributes[GameAttribute.Untargetable] && !World.PowerManager.IsDeletingActor(actor) && actor != User && (PowerMath.Distance2D(center, actor.Position) - (actor.ActorData.Cylinder.Ax2 + 5f)) <= radius + radiusCompensation) + if (filter(actor) && !actor.Attributes[GameAttributes.Untargetable] && !World.PowerManager.IsDeletingActor(actor) && actor != User && (PowerMath.Distance2D(center, actor.Position) - (actor.ActorData.Cylinder.Ax2 + 5f)) <= radius + radiusCompensation) { if (targetFilter(actor)) { @@ -279,7 +275,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem return (actor) => ((actor is Player && actor.GlobalID != User.GlobalID) || (actor is Minion minion && minion.GlobalID != User.GlobalID && minion.Master.GlobalID != User.GlobalID)); else { - if (User is Player || User is Minion || User is Hireling || (User is Monster && User.Attributes[GameAttribute.Team_Override] == 1) || User.SNO == ActorSno._pt_blacksmith_nonvendor || (User is Monster && User.Attributes[GameAttribute.Team_Override] == 1)) + if (User is Player || User is Minion || User is Hireling || (User is Monster && User.Attributes[GameAttributes.Team_Override] == 1) || User.SNO == ActorSno._pt_blacksmith_nonvendor || (User is Monster && User.Attributes[GameAttributes.Team_Override] == 1)) return (actor) => (actor is Monster || actor is DesctructibleLootContainer) && actor.Visible && !(actor is ActorSystem.Implementations.ScriptObjects.ButcherFloorPanel) && !(actor is ActorSystem.Implementations.ScriptObjects.LeorFireGrate); else if (User is TownLeah || User is CaptainRumford || User is ArrowGuardian || User is LorathNahr_NPC) return (actor) => actor is Monster && actor.Visible; @@ -419,11 +415,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem } } - public int Rune_A { get { return User.Attributes[GameAttribute.Rune_A, PowerSNO]; } } - public int Rune_B { get { return User.Attributes[GameAttribute.Rune_B, PowerSNO]; } } - public int Rune_C { get { return User.Attributes[GameAttribute.Rune_C, PowerSNO]; } } - public int Rune_D { get { return User.Attributes[GameAttribute.Rune_D, PowerSNO]; } } - public int Rune_E { get { return User.Attributes[GameAttribute.Rune_E, PowerSNO]; } } + public int Rune_A { get { return User.Attributes[GameAttributes.Rune_A, PowerSNO]; } } + public int Rune_B { get { return User.Attributes[GameAttributes.Rune_B, PowerSNO]; } } + public int Rune_C { get { return User.Attributes[GameAttributes.Rune_C, PowerSNO]; } } + public int Rune_D { get { return User.Attributes[GameAttributes.Rune_D, PowerSNO]; } } + public int Rune_E { get { return User.Attributes[GameAttributes.Rune_E, PowerSNO]; } } public T RuneSelect(T none, T runeA, T runeB, T runeC, T runeD, T runeE) { diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/PowerManager.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/PowerManager.cs index 0bb478d..20427cc 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/PowerManager.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/PowerManager.cs @@ -4,11 +4,7 @@ using System.Linq; using DiIiS_NA.Core.Logging; using DiIiS_NA.GameServer.Core.Types.TagMap; using DiIiS_NA.GameServer.Core.Types.Math; -using DiIiS_NA.GameServer.Core.Types.Misc; using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Movement; -using DiIiS_NA.GameServer.GSSystem.ObjectsSystem; using DiIiS_NA.GameServer.GSSystem.TickerSystem; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.Core.Helpers.Math; @@ -53,7 +49,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem { user.PlayEffectGroup(249956); } - if (user.Attributes[GameAttribute.Item_Power_Passive, 246116] == 1 && FastRandom.Instance.NextDouble() < 0.2) + if (user.Attributes[GameAttributes.Item_Power_Passive, 246116] == 1 && FastRandom.Instance.NextDouble() < 0.2) { user.PlayEffectGroup(246117); } @@ -69,26 +65,26 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem return false; } - if (user.Attributes[GameAttribute.Disabled] == true) return false; + if (user.Attributes[GameAttributes.Disabled] == true) return false; if (user is Player && targetPosition != null) CheckItemProcs(user as Player); //break stun if possible if (PowerTagHelper.FindTagMapWithKey(power.PowerSNO, PowerKeys.BreaksStun) != null) - if (user.Attributes[GameAttribute.Stunned] == true || user.Attributes[GameAttribute.Frozen] == true) + if (user.Attributes[GameAttributes.Stunned] == true || user.Attributes[GameAttributes.Frozen] == true) { float result; if (ScriptFormulaEvaluator.Evaluate(power.PowerSNO, PowerKeys.BreaksStun, user.Attributes, PowerContext.Rand, out result) && result > 0) { user.World.BuffManager.RemoveBuffs(user, 101000); - user.Attributes[GameAttribute.Frozen] = false; + user.Attributes[GameAttributes.Frozen] = false; user.Attributes.BroadcastChangedIfRevealed(); } } //break fear if possible if (PowerTagHelper.FindTagMapWithKey(power.PowerSNO, PowerKeys.BreaksFear) != null) - if (user.Attributes[GameAttribute.Feared] == true) + if (user.Attributes[GameAttributes.Feared] == true) { float result; if (ScriptFormulaEvaluator.Evaluate(power.PowerSNO, PowerKeys.BreaksFear, user.Attributes, PowerContext.Rand, out result) && result > 0) @@ -96,7 +92,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem } //break root if possible if (PowerTagHelper.FindTagMapWithKey(power.PowerSNO, PowerKeys.BreaksRoot) != null) - if (user.Attributes[GameAttribute.IsRooted] == true) + if (user.Attributes[GameAttributes.IsRooted] == true) { float result; if (ScriptFormulaEvaluator.Evaluate(power.PowerSNO, PowerKeys.BreaksRoot, user.Attributes, PowerContext.Rand, out result) && result > 0) @@ -129,10 +125,10 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem user.LastSecondCasts++; - if (user is Player && !(power is ChanneledSkill) && power.PowerSNO != 109344 && user.LastSecondCasts > user.Attributes[GameAttribute.Attacks_Per_Second_Total] + 1f) + if (user is Player && !(power is ChanneledSkill) && power.PowerSNO != 109344 && user.LastSecondCasts > user.Attributes[GameAttributes.Attacks_Per_Second_Total] + 1f) { //fix for ApS cheating - user.Attributes[GameAttribute.Attacks_Per_Second] -= 0.00000001f; + user.Attributes[GameAttributes.Attacks_Per_Second] -= 0.00000001f; user.Attributes.BroadcastChangedIfRevealed(); cheatCounter++; if (cheatCounter > 5) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Projectile.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Projectile.cs index 40c8cea..6655237 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Projectile.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/Projectile.cs @@ -71,15 +71,15 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem Timeout = new SecondsTickTimer(context.World.Game, 3f); // copy in important effect params from user - Attributes[GameAttribute.Rune_A, context.PowerSNO] = context.User.Attributes[GameAttribute.Rune_A, context.PowerSNO]; - Attributes[GameAttribute.Rune_B, context.PowerSNO] = context.User.Attributes[GameAttribute.Rune_B, context.PowerSNO]; - Attributes[GameAttribute.Rune_C, context.PowerSNO] = context.User.Attributes[GameAttribute.Rune_C, context.PowerSNO]; - Attributes[GameAttribute.Rune_D, context.PowerSNO] = context.User.Attributes[GameAttribute.Rune_D, context.PowerSNO]; - Attributes[GameAttribute.Rune_E, context.PowerSNO] = context.User.Attributes[GameAttribute.Rune_E, context.PowerSNO]; + Attributes[GameAttributes.Rune_A, context.PowerSNO] = context.User.Attributes[GameAttributes.Rune_A, context.PowerSNO]; + Attributes[GameAttributes.Rune_B, context.PowerSNO] = context.User.Attributes[GameAttributes.Rune_B, context.PowerSNO]; + Attributes[GameAttributes.Rune_C, context.PowerSNO] = context.User.Attributes[GameAttributes.Rune_C, context.PowerSNO]; + Attributes[GameAttributes.Rune_D, context.PowerSNO] = context.User.Attributes[GameAttributes.Rune_D, context.PowerSNO]; + Attributes[GameAttributes.Rune_E, context.PowerSNO] = context.User.Attributes[GameAttributes.Rune_E, context.PowerSNO]; - if (Context.User.Attributes[GameAttribute.Displays_Team_Effect] == true) - Attributes[GameAttribute.Displays_Team_Effect] = true; + if (Context.User.Attributes[GameAttributes.Displays_Team_Effect] == true) + Attributes[GameAttributes.Displays_Team_Effect] = true; _prevUpdatePosition = null; _launchPosition = null; @@ -95,20 +95,20 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem _prevUpdatePosition = Position; _launchPosition = Position; - Attributes[GameAttribute.Projectile_Speed] = speed * 0.75f; + Attributes[GameAttributes.Projectile_Speed] = speed * 0.75f; TranslateFacing(targetPosition, true); targetPosition = new Vector3D(targetPosition); //targetPosition.Z = this.Context.User.Position.Z + 5f + this.ActorData.Cylinder.Ax1 - this.ActorData.Cylinder.Position.Z; targetPosition.Z += ActorData.Cylinder.Ax1 - ActorData.Cylinder.Position.Z; - if (Attributes[GameAttribute.Projectile_Speed] <= 0) + if (Attributes[GameAttributes.Projectile_Speed] <= 0) { Destroy(); return; } - Attributes[GameAttribute.DestroyWhenPathBlocked] = true; + Attributes[GameAttributes.DestroyWhenPathBlocked] = true; if (!_spawned) { @@ -116,9 +116,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem _spawned = true; } - _lastSpeed = Attributes[GameAttribute.Projectile_Speed]; + _lastSpeed = Attributes[GameAttributes.Projectile_Speed]; - _mover.MoveFixed(targetPosition, Attributes[GameAttribute.Projectile_Speed], new MessageSystem.Message.Definitions.ACD.ACDTranslateFixedMessage + _mover.MoveFixed(targetPosition, Attributes[GameAttributes.Projectile_Speed], new MessageSystem.Message.Definitions.ACD.ACDTranslateFixedMessage { MoveFlags = 0x7fffffff, AnimationTag = AnimationSetKeys.IdleDefault.ID, @@ -134,7 +134,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem _prevUpdatePosition = Position; _launchPosition = Position; - Attributes[GameAttribute.Projectile_Speed] = speed * 0.75f; + Attributes[GameAttributes.Projectile_Speed] = speed * 0.75f; TranslateFacing(targetPosition, true); targetPosition = new Vector3D(targetPosition); @@ -142,13 +142,13 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem targetPosition.Z += ActorData.Cylinder.Ax1 - ActorData.Cylinder.Position.Z; - if (Attributes[GameAttribute.Projectile_Speed] <= 0) + if (Attributes[GameAttributes.Projectile_Speed] <= 0) { Destroy(); return; } - Attributes[GameAttribute.DestroyWhenPathBlocked] = true; + Attributes[GameAttributes.DestroyWhenPathBlocked] = true; if (!_spawned) { @@ -156,9 +156,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem _spawned = true; } - _lastSpeed = Attributes[GameAttribute.Projectile_Speed]; + _lastSpeed = Attributes[GameAttributes.Projectile_Speed]; - _mover.MoveFixed(targetPosition, Attributes[GameAttribute.Projectile_Speed], new MessageSystem.Message.Definitions.ACD.ACDTranslateFixedMessage + _mover.MoveFixed(targetPosition, Attributes[GameAttributes.Projectile_Speed], new MessageSystem.Message.Definitions.ACD.ACDTranslateFixedMessage { MoveFlags = 0x7fffffff, AnimationTag = AnimationSetKeys.IdleDefault.ID, @@ -175,19 +175,19 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem _prevUpdatePosition = Position; _launchPosition = Position; - Attributes[GameAttribute.Projectile_Speed] = speed; + Attributes[GameAttributes.Projectile_Speed] = speed; //targetPosition = new Vector3D(targetPosition); //targetPosition.Z = this.Context.User.Position.Z + 5f + this.ActorData.Cylinder.Ax1 - this.ActorData.Cylinder.Position.Z; //targetPosition.Z += this.ActorData.Cylinder.Ax1 - this.ActorData.Cylinder.Position.Z; - if (Attributes[GameAttribute.Projectile_Speed] <= 0) + if (Attributes[GameAttributes.Projectile_Speed] <= 0) { Destroy(); return; } - Attributes[GameAttribute.DestroyWhenPathBlocked] = false; + Attributes[GameAttributes.DestroyWhenPathBlocked] = false; if (!_spawned) { @@ -195,9 +195,9 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem _spawned = true; } - _lastSpeed = Attributes[GameAttribute.Projectile_Speed]; + _lastSpeed = Attributes[GameAttributes.Projectile_Speed]; - _mover.MoveCircle(centerPosition, radius, Attributes[GameAttribute.Projectile_Speed], duration, new MessageSystem.Message.Definitions.ACD.ACDTranslateDetPathSpiralMessage + _mover.MoveCircle(centerPosition, radius, Attributes[GameAttributes.Projectile_Speed], duration, new MessageSystem.Message.Definitions.ACD.ACDTranslateDetPathSpiralMessage { AnimTag = AnimationSetKeys.IdleDefault.ID }); @@ -340,11 +340,11 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem // gotta make sure the actor hasn't been deleted after processing each handler - if (_lastSpeed != Attributes[GameAttribute.Projectile_Speed]) + if (_lastSpeed != Attributes[GameAttributes.Projectile_Speed]) { if (_mover.IsFixedMove()) { - Launch(_mover.GetDestination(), Attributes[GameAttribute.Projectile_Speed]); + Launch(_mover.GetDestination(), Attributes[GameAttributes.Projectile_Speed]); return; } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/ScriptFormulaEvaluator.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/ScriptFormulaEvaluator.cs index 353562a..0cf38aa 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/ScriptFormulaEvaluator.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/PowerSystem/ScriptFormulaEvaluator.cs @@ -9,8 +9,6 @@ using DiIiS_NA.GameServer.MessageSystem; using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.PowerSystem { @@ -259,7 +257,7 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem return LoadAttribute(powerSNO, attributes, numb2, out result); case 1: // slevel - result = attributes[GameAttribute.Skill, powerSNO]; + result = attributes[GameAttributes.Skill, powerSNO]; return true; case 22: // absolute power formula ref @@ -289,24 +287,24 @@ namespace DiIiS_NA.GameServer.GSSystem.PowerSystem // this lists the attributes that need to be keyed with the powerSNO to work private static readonly SortedSet _powerKeyedAttributes = new SortedSet() { - GameAttribute.Rune_A.Id, - GameAttribute.Rune_B.Id, - GameAttribute.Rune_C.Id, - GameAttribute.Rune_D.Id, - GameAttribute.Rune_E.Id, - GameAttribute.Buff_Icon_Count0.Id, - GameAttribute.Buff_Icon_Count1.Id, - GameAttribute.Buff_Icon_Count2.Id, - GameAttribute.Buff_Icon_Count3.Id, - GameAttribute.Buff_Icon_Count4.Id, - GameAttribute.Buff_Icon_Count5.Id, - GameAttribute.Buff_Icon_Count6.Id, - GameAttribute.Buff_Icon_Count7.Id, + GameAttributes.Rune_A.Id, + GameAttributes.Rune_B.Id, + GameAttributes.Rune_C.Id, + GameAttributes.Rune_D.Id, + GameAttributes.Rune_E.Id, + GameAttributes.Buff_Icon_Count0.Id, + GameAttributes.Buff_Icon_Count1.Id, + GameAttributes.Buff_Icon_Count2.Id, + GameAttributes.Buff_Icon_Count3.Id, + GameAttributes.Buff_Icon_Count4.Id, + GameAttributes.Buff_Icon_Count5.Id, + GameAttributes.Buff_Icon_Count6.Id, + GameAttributes.Buff_Icon_Count7.Id, }; private static bool LoadAttribute(int powerSNO, GameAttributeMap attributes, int attributeId, out float result) { - GameAttribute attr = GameAttribute.Attributes[attributeId]; + GameAttribute attr = GameAttributes.Attributes[attributeId]; bool needs_key = _powerKeyedAttributes.Contains(attributeId); if (attr is GameAttributeF) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActI.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActI.cs index c80aa38..8b55eca 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActI.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActI.cs @@ -1,19 +1,12 @@ using DiIiS_NA.Core.Logging; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; using DiIiS_NA.GameServer.GSSystem.GameSystem; -using System; using System.Collections.Generic; -using DiIiS_NA.LoginServer.AccountsSystem; using DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents; using DiIiS_NA.GameServer.Core.Types.Math; using DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations; using System.Linq; -using System.Threading.Tasks; using DiIiS_NA.GameServer.MessageSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; -using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Pet; -using DiIiS_NA.Core.Helpers.Hash; using DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations.Act_I; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Hireling; using DiIiS_NA.GameServer.Core.Types.TagMap; @@ -373,12 +366,12 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem { var world = Game.GetWorld(WorldSno.trout_adriascellar); CapitanDaltyn = world.SpawnMonster(ActorSno._unique_captaindaltyn, new Vector3D { X = 52.587f, Y = 103.368f, Z = 0.1f }); - CapitanDaltyn.Attributes[GameAttribute.Quest_Monster] = true; + CapitanDaltyn.Attributes[GameAttributes.Quest_Monster] = true; CapitanDaltyn.PlayAnimation(5, AnimationSno.zombie_male_skinny_spawn); foreach (Vector3D point in Zombies) { var Zombie = world.SpawnMonster(ActorSno._zombieskinny_a, point); - Zombie.Attributes[GameAttribute.Quest_Monster] = true; + Zombie.Attributes[GameAttributes.Quest_Monster] = true; Zombie.PlayAnimation(5, AnimationSno.zombie_male_skinny_spawn); } }); @@ -584,7 +577,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem ActiveArrow(world, ActorSno._pt_blacksmith_nonvendor); var Cain = world.GetActorBySNO(ActorSno._cain, true) as ActorSystem.InteractiveNPC; Cain.Conversations.Clear(); - Cain.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + Cain.Attributes[GameAttributes.Conversation_Icon, 0] = 1; Cain.Attributes.BroadcastChangedIfRevealed(); ListenConversation(198292, new Advance()); @@ -620,8 +613,8 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem var monsterLevels = (DiIiS_NA.Core.MPQ.FileFormats.GameBalance)DiIiS_NA.Core.MPQ.MPQStorage.Data.Assets[Core.Types.SNO.SNOGroup.GameBalance][19760].Data; float DamageMin = monsterLevels.MonsterLevel[Game.MonsterLevel].Dmg * 0.5f; float DamageDelta = DamageMin * 0.3f; - Smith.Attributes[GameAttribute.Damage_Weapon_Min, 0] = DamageMin * Game.DmgModifier; - Smith.Attributes[GameAttribute.Damage_Weapon_Delta, 0] = DamageDelta; + Smith.Attributes[GameAttributes.Damage_Weapon_Min, 0] = DamageMin * Game.DmgModifier; + Smith.Attributes[GameAttributes.Damage_Weapon_Delta, 0] = DamageDelta; } }); @@ -936,8 +929,8 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem foreach (var Wall in world.GetActorsBySNO(ActorSno._trdun_cath_bonewall_a_door)) { Wall.PlayAnimation(11, AnimationSno.trdun_cath_bonewall_a_death); - Wall.Attributes[GameAttribute.Deleted_On_Server] = true; - Wall.Attributes[GameAttribute.Could_Have_Ragdolled] = true; + Wall.Attributes[GameAttributes.Deleted_On_Server] = true; + Wall.Attributes[GameAttributes.Could_Have_Ragdolled] = true; Wall.Attributes.BroadcastChangedIfRevealed(); Wall.Destroy(); } @@ -1641,7 +1634,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem foreach (var cultist in Game.GetWorld(WorldSno.trout_townattack).GetActorsBySNO(ActorSno._townattackcultistmelee)) if (cultist.CurrentScene.SceneSNO.Id == 76000) { - cultist.Attributes[GameAttribute.Quest_Monster] = true; + cultist.Attributes[GameAttributes.Quest_Monster] = true; cultist.Attributes.BroadcastChangedIfRevealed(); Count++; } @@ -1814,7 +1807,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem //ListenProximity(4580, new LaunchConversation(93337)); //cork (LeahAfterEvent as ActorSystem.InteractiveNPC).Conversations.Clear(); (LeahAfterEvent as ActorSystem.InteractiveNPC).Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(93337)); - (LeahAfterEvent as ActorSystem.InteractiveNPC).Attributes[GameAttribute.Conversation_Icon, 0] = 2; + (LeahAfterEvent as ActorSystem.InteractiveNPC).Attributes[GameAttributes.Conversation_Icon, 0] = 2; (LeahAfterEvent as ActorSystem.InteractiveNPC).Attributes.BroadcastChangedIfRevealed(); ListenConversation(93337, new Advance()); Game.CurrentEncounter.Activated = false; @@ -1829,7 +1822,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem OnAdvance = () => { //go to Aranea Cave var LeahAfterEvent = Game.GetWorld(WorldSno.trout_town).GetActorBySNO(ActorSno._leah_afterevent31_exit); - (LeahAfterEvent as ActorSystem.InteractiveNPC).Attributes[GameAttribute.Conversation_Icon, 0] = 1; + (LeahAfterEvent as ActorSystem.InteractiveNPC).Attributes[GameAttributes.Conversation_Icon, 0] = 1; (LeahAfterEvent as ActorSystem.InteractiveNPC).Attributes.BroadcastChangedIfRevealed(); ListenTeleport(78572, new Advance()); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActII.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActII.cs index 746c895..479ad80 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActII.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActII.cs @@ -3,21 +3,16 @@ using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; using DiIiS_NA.GameServer.GSSystem.GameSystem; using System; using System.Collections.Generic; -using DiIiS_NA.LoginServer.AccountsSystem; using DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents; using DiIiS_NA.GameServer.Core.Types.Math; using DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations; using System.Linq; using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.GSSystem.PlayerSystem; -using DiIiS_NA.GameServer.GSSystem.AISystem.Brains; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Pet; -using DiIiS_NA.Core.Helpers.Hash; using DiIiS_NA.GameServer.GSSystem.ActorSystem; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.ScriptObjects; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Hireling; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base; using DiIiS_NA.D3_GameServer.Core.Types.SNO; namespace DiIiS_NA.GameServer.GSSystem.QuestSystem @@ -1478,7 +1473,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem { NPC.Conversations.Clear(); NPC.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(conversation)); - NPC.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + NPC.Attributes[GameAttributes.Conversation_Icon, 0] = 2; NPC.Attributes.BroadcastChangedIfRevealed(); } @@ -1490,7 +1485,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem NPC = N as InteractiveNPC; NPC.Conversations.Clear(); NPC.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(conversation)); - NPC.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + NPC.Attributes[GameAttributes.Conversation_Icon, 0] = 2; NPC.Attributes.BroadcastChangedIfRevealed(); } } @@ -1503,7 +1498,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem if (actor is InteractiveNPC npc) { npc.Conversations.Clear(); - npc.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + npc.Attributes[GameAttributes.Conversation_Icon, 0] = 1; npc.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActIII.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActIII.cs index ed1ef97..72c0b95 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActIII.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActIII.cs @@ -1,13 +1,10 @@ using DiIiS_NA.Core.Logging; using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings; using DiIiS_NA.GameServer.GSSystem.GameSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using System.Linq; using System; using System.Collections.Generic; -using DiIiS_NA.LoginServer.AccountsSystem; using DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents; using DiIiS_NA.GameServer.Core.Types.Math; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; @@ -244,7 +241,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem OnAdvance = new Action(() => { var Tyrael = Game.GetWorld(WorldSno.a3dun_hub_keep).GetActorBySNO(ActorSno._tyrael_act3); (Tyrael as InteractiveNPC).Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(183792)); - Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + Tyrael.Attributes[GameAttributes.Conversation_Icon, 0] = 2; Tyrael.Attributes.BroadcastChangedIfRevealed(); ListenConversation(183792, new Advance()); }) @@ -258,7 +255,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem OnAdvance = new Action(() => { //go to Armory var Tyrael = Game.GetWorld(WorldSno.a3dun_hub_keep).GetActorBySNO(ActorSno._tyrael_act3); (Tyrael as InteractiveNPC).Conversations.Clear(); - Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + Tyrael.Attributes[GameAttributes.Conversation_Icon, 0] = 1; Tyrael.Attributes.BroadcastChangedIfRevealed(); ListenTeleport(185228, new Advance()); }) @@ -275,13 +272,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem var world = Game.GetWorld(WorldSno.a3dun_keep_hub_inn); bool Activated = false; var NStone = world.GetActorBySNO(ActorSno._a2dun_zolt_black_soulstone);//156328 - NStone.Attributes[GameAttribute.Team_Override] = (Activated ? -1 : 2); - NStone.Attributes[GameAttribute.Untargetable] = !Activated; - NStone.Attributes[GameAttribute.NPC_Is_Operatable] = Activated; - NStone.Attributes[GameAttribute.Operatable] = Activated; - NStone.Attributes[GameAttribute.Operatable_Story_Gizmo] = Activated; - NStone.Attributes[GameAttribute.Disabled] = !Activated; - NStone.Attributes[GameAttribute.Immunity] = !Activated; + NStone.Attributes[GameAttributes.Team_Override] = (Activated ? -1 : 2); + NStone.Attributes[GameAttributes.Untargetable] = !Activated; + NStone.Attributes[GameAttributes.NPC_Is_Operatable] = Activated; + NStone.Attributes[GameAttributes.Operatable] = Activated; + NStone.Attributes[GameAttributes.Operatable_Story_Gizmo] = Activated; + NStone.Attributes[GameAttributes.Disabled] = !Activated; + NStone.Attributes[GameAttributes.Immunity] = !Activated; NStone.Attributes.BroadcastChangedIfRevealed(); NStone.PlayEffectGroup(205460); foreach (var atr in world.GetActorsBySNO(ActorSno._leah)) @@ -373,7 +370,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem OnAdvance = new Action(() => { //talk with sergeant Pale var Serge = Game.GetWorld(WorldSno.a3_battlefields_02).GetActorBySNO(ActorSno._a3_battlefield_guard_sargeant); (Serge as InteractiveNPC).Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(170486)); - Serge.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + Serge.Attributes[GameAttributes.Conversation_Icon, 0] = 1; //this.Game.GetWorld(95804).SpawnMonster(202730, new Vector3D(4394.2188f, 396.80215f, -2.293509f)); //ListenConversation(170486, new LaunchConversation(202735)); ListenConversation(170486, new Advance()); @@ -742,13 +739,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem //Черный камень душ, нельзя! ТРОГАТЬ! ФУ! БРЫСЬ! bool Activated = false; var NStone = World.GetActorBySNO(ActorSno._a2dun_zolt_black_soulstone);//156328 - NStone.Attributes[GameAttribute.Team_Override] = (Activated ? -1 : 2); - NStone.Attributes[GameAttribute.Untargetable] = !Activated; - NStone.Attributes[GameAttribute.NPC_Is_Operatable] = Activated; - NStone.Attributes[GameAttribute.Operatable] = Activated; - NStone.Attributes[GameAttribute.Operatable_Story_Gizmo] = Activated; - NStone.Attributes[GameAttribute.Disabled] = !Activated; - NStone.Attributes[GameAttribute.Immunity] = !Activated; + NStone.Attributes[GameAttributes.Team_Override] = (Activated ? -1 : 2); + NStone.Attributes[GameAttributes.Untargetable] = !Activated; + NStone.Attributes[GameAttributes.NPC_Is_Operatable] = Activated; + NStone.Attributes[GameAttributes.Operatable] = Activated; + NStone.Attributes[GameAttributes.Operatable_Story_Gizmo] = Activated; + NStone.Attributes[GameAttributes.Disabled] = !Activated; + NStone.Attributes[GameAttributes.Immunity] = !Activated; NStone.Attributes.BroadcastChangedIfRevealed(); //Участники сцены foreach (var plr in World.Players.Values) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActIV.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActIV.cs index b1bf6d7..952482f 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActIV.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActIV.cs @@ -1,8 +1,6 @@ using DiIiS_NA.Core.Logging; using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings; using DiIiS_NA.GameServer.GSSystem.GameSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; using System.Linq; using System; @@ -38,7 +36,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem var Tyrael = Game.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight_entrance).GetActorBySNO(ActorSno._tyrael) as InteractiveNPC; Tyrael.Conversations.Clear(); Tyrael.OverridedConv = true; - Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + Tyrael.Attributes[GameAttributes.Conversation_Icon, 0] = 1; Tyrael.Attributes.BroadcastChangedIfRevealed(); Tyrael.SetUsable(false); ListenProximity(ActorSno._tyrael, new LaunchConversation(195607)); @@ -62,7 +60,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem Tyrael.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(112449)); Tyrael.OverridedConv = true; Tyrael.SetUsable(true); - Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + Tyrael.Attributes[GameAttributes.Conversation_Icon, 0] = 2; Tyrael.Attributes.BroadcastChangedIfRevealed(); //StartConversation(this.Game.GetWorld(182944), 112449); } @@ -158,7 +156,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem Ityrael.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(112763)); Ityrael.OverridedConv = true; Ityrael.SetUsable(true); - Ityrael.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + Ityrael.Attributes[GameAttributes.Conversation_Icon, 0] = 2; Ityrael.Attributes.BroadcastChangedIfRevealed(); ListenConversation(112763, new Advance()); @@ -175,7 +173,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem if (Game.Empty) UnlockTeleport(3); var Ityrael = Game.GetWorld(WorldSno.a4dun_heaven_1000_monsters_fight).GetActorBySNO(ActorSno._fate) as InteractiveNPC; Ityrael.Conversations.Clear(); - Ityrael.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + Ityrael.Attributes[GameAttributes.Conversation_Icon, 0] = 1; Ityrael.Attributes.BroadcastChangedIfRevealed(); ListenTeleport(109514, new Advance()); @@ -212,9 +210,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem ExitPortal.Hidden = true; ExitPortal.SetVisible(false); - Hope_Bound.Attributes[GameAttribute.Gizmo_Has_Been_Operated] = true; - Hope_Bound.Attributes[GameAttribute.Gizmo_State] = 1; - Hope_Bound.Attributes[GameAttribute.Untargetable] = true; + Hope_Bound.Attributes[GameAttributes.Gizmo_Has_Been_Operated] = true; + Hope_Bound.Attributes[GameAttributes.Gizmo_State] = 1; + Hope_Bound.Attributes[GameAttributes.Untargetable] = true; Hope_Bound.Attributes.BroadcastChangedIfRevealed(); foreach (var plr in Library.Players.Values) @@ -236,9 +234,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem StartConversation(Library, 217223); // Голос дъябло после битвы var Hope_Bound = Library.GetActorBySNO(ActorSno._a4dunspire_interactives_hope_bound); - Hope_Bound.Attributes[GameAttribute.Gizmo_Has_Been_Operated] = false; - Hope_Bound.Attributes[GameAttribute.Gizmo_State] = 0; - Hope_Bound.Attributes[GameAttribute.Untargetable] = false; + Hope_Bound.Attributes[GameAttributes.Gizmo_Has_Been_Operated] = false; + Hope_Bound.Attributes[GameAttributes.Gizmo_State] = 0; + Hope_Bound.Attributes[GameAttributes.Untargetable] = false; Hope_Bound.Attributes.BroadcastChangedIfRevealed(); ListenInteract(ActorSno._a4dunspire_interactives_hope_bound, 1, new Advance()); @@ -260,10 +258,10 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem Hope.PlayAnimation(11, AnimationSno.omninpc_female_hope_spawn_01, 1); Fate.PlayAnimation(11, AnimationSno.omninpc_male_fate_spawn_01, 1); - Hope.Attributes[GameAttribute.MinimapActive] = true; + Hope.Attributes[GameAttributes.MinimapActive] = true; (Hope as InteractiveNPC).Conversations.Clear(); (Hope as InteractiveNPC).Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(114124)); - Hope.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + Hope.Attributes[GameAttributes.Conversation_Icon, 0] = 2; (Hope as InteractiveNPC).OverridedConv = true; Hope.Attributes.BroadcastChangedIfRevealed(); @@ -282,7 +280,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem var Library = Game.GetWorld(WorldSno.a4dun_libraryoffate); var Hope = Library.GetActorBySNO(ActorSno._hope, true); (Hope as InteractiveNPC).Conversations.Clear(); - Hope.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + Hope.Attributes[GameAttributes.Conversation_Icon, 0] = 1; (Hope as InteractiveNPC).OverridedConv = true; Hope.Attributes.BroadcastChangedIfRevealed(); var ExitPortal = Library.GetActorBySNO(ActorSno._g_portal_heaventeal); @@ -393,10 +391,10 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem var Garden = Game.GetWorld(WorldSno.a4dun_garden_of_hope_random); var Tyrael = Garden.GetActorBySNO(ActorSno._tyrael_heaven_spire); - Tyrael.Attributes[GameAttribute.MinimapActive] = true; + Tyrael.Attributes[GameAttributes.MinimapActive] = true; (Tyrael as InteractiveNPC).Conversations.Clear(); (Tyrael as InteractiveNPC).Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(114131)); - Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + Tyrael.Attributes[GameAttributes.Conversation_Icon, 0] = 2; (Tyrael as InteractiveNPC).OverridedConv = true; Tyrael.Attributes.BroadcastChangedIfRevealed(); ListenConversation(114131, new Advance()); @@ -450,7 +448,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem foreach (var mob in CrystalWorld.GetActorsBySNO(ActorSno._bigred_a)) { (mob as Monster).Brain.DeActivate(); - mob.Attributes[GameAttribute.Untargetable] = true; + mob.Attributes[GameAttributes.Untargetable] = true; } script = new ImperiumScene(); script.Execute(CrystalWorld); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActV.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActV.cs index c2c6f63..52a1da9 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActV.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/ActV.cs @@ -1,10 +1,7 @@ using DiIiS_NA.Core.Logging; using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings; using DiIiS_NA.GameServer.GSSystem.GameSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System.Linq; using System; using System.Collections.Generic; using DiIiS_NA.LoginServer.AccountsSystem; @@ -40,7 +37,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem { NPC.Conversations.Clear(); NPC.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(conversation)); - NPC.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + NPC.Attributes[GameAttributes.Conversation_Icon, 0] = 2; NPC.Attributes.BroadcastChangedIfRevealed(); NPC.ForceConversationSNO = conversation; } @@ -52,7 +49,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem NPC = N as InteractiveNPC; NPC.Conversations.Clear(); NPC.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(conversation)); - NPC.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + NPC.Attributes[GameAttributes.Conversation_Icon, 0] = 2; NPC.Attributes.BroadcastChangedIfRevealed(); NPC.ForceConversationSNO = conversation; } @@ -65,7 +62,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem if (actor is InteractiveNPC npc) { npc.Conversations.Clear(); - npc.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + npc.Attributes[GameAttributes.Conversation_Icon, 0] = 1; npc.Attributes.BroadcastChangedIfRevealed(); } } @@ -120,7 +117,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem { var introGuy = npc as InteractiveNPC; introGuy.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(308393)); - introGuy.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + introGuy.Attributes[GameAttributes.Conversation_Icon, 0] = 2; introGuy.Attributes.BroadcastChangedIfRevealed(); } ListenConversation(308393, new EnterToWest()); @@ -142,7 +139,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem { var introGuy = npc as InteractiveNPC; introGuy.Conversations.Clear(); - introGuy.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + introGuy.Attributes[GameAttributes.Conversation_Icon, 0] = 1; introGuy.Attributes.BroadcastChangedIfRevealed(); } @@ -216,7 +213,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem var world = Game.GetWorld(WorldSno.x1_westm_intro); var Tyrael = world.ShowOnlyNumNPC(ActorSno._x1_tyrael_hurt, 0) as InteractiveNPC; Tyrael.Conversations.Clear(); - Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + Tyrael.Attributes[GameAttributes.Conversation_Icon, 0] = 1; Tyrael.Attributes.BroadcastChangedIfRevealed(); Game.AddOnLoadWorldAction(WorldSno.x1_westm_intro, () => @@ -267,7 +264,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem if (Tyrael != null) { Tyrael.Conversations.Clear(); - Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + Tyrael.Attributes[GameAttributes.Conversation_Icon, 0] = 1; Tyrael.Attributes.BroadcastChangedIfRevealed(); } ListenTeleport(270011, new Advance()); @@ -456,7 +453,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem AddQuestConversation(Myst, 305750); (Myst as InteractiveNPC).Conversations.Clear(); (Myst as InteractiveNPC).Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(305750)); - (Myst as InteractiveNPC).Attributes[GameAttribute.Conversation_Icon, 0] = 2; + (Myst as InteractiveNPC).Attributes[GameAttributes.Conversation_Icon, 0] = 2; (Myst as InteractiveNPC).Attributes.BroadcastChangedIfRevealed(); (Myst as InteractiveNPC).ForceConversationSNO = 305750; } @@ -495,13 +492,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem { bool Activated = false; - Malt.Attributes[GameAttribute.Team_Override] = (Activated ? -1 : 2); - Malt.Attributes[GameAttribute.Untargetable] = !Activated; - Malt.Attributes[GameAttribute.NPC_Is_Operatable] = Activated; - Malt.Attributes[GameAttribute.Operatable] = Activated; - Malt.Attributes[GameAttribute.Operatable_Story_Gizmo] = Activated; - Malt.Attributes[GameAttribute.Disabled] = !Activated; - Malt.Attributes[GameAttribute.Immunity] = !Activated; + Malt.Attributes[GameAttributes.Team_Override] = (Activated ? -1 : 2); + Malt.Attributes[GameAttributes.Untargetable] = !Activated; + Malt.Attributes[GameAttributes.NPC_Is_Operatable] = Activated; + Malt.Attributes[GameAttributes.Operatable] = Activated; + Malt.Attributes[GameAttributes.Operatable_Story_Gizmo] = Activated; + Malt.Attributes[GameAttributes.Disabled] = !Activated; + Malt.Attributes[GameAttributes.Immunity] = !Activated; } Open(world, ActorSno._x1_westm_door_gate); AddFollower(world, ActorSno._pt_mystic_novendor_nonglobalfollower); @@ -980,7 +977,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem AddQuestConversation(Myst, 260191); (Myst as InteractiveNPC).Conversations.Clear(); (Myst as InteractiveNPC).Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(260191)); - (Myst as InteractiveNPC).Attributes[GameAttribute.Conversation_Icon, 0] = 2; + (Myst as InteractiveNPC).Attributes[GameAttributes.Conversation_Icon, 0] = 2; (Myst as InteractiveNPC).Attributes.BroadcastChangedIfRevealed(); (Myst as InteractiveNPC).ForceConversationSNO = 260191; } @@ -1006,7 +1003,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem foreach (var Myst in Game.GetWorld(WorldSno.x1_adria_boss_arena_02).GetActorsBySNO(ActorSno._x1_npc_lorathnahr)) //284530 { (Myst as InteractiveNPC).Conversations.Clear(); - (Myst as InteractiveNPC).Attributes[GameAttribute.Conversation_Icon, 0] = 1; + (Myst as InteractiveNPC).Attributes[GameAttributes.Conversation_Icon, 0] = 1; (Myst as InteractiveNPC).Attributes.BroadcastChangedIfRevealed(); } ListenInteract(ActorSno._x1_tyrael_hurt, 1, new LaunchConversation(274440)); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/Events.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/Events.cs index 99ff9fa..0265751 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/Events.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/Events.cs @@ -1,5 +1,4 @@ -using DiIiS_NA.Core.Helpers.Math; -using DiIiS_NA.Core.Logging; +using DiIiS_NA.Core.Logging; using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; using DiIiS_NA.GameServer.GSSystem.GameSystem; @@ -794,9 +793,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem foreach (var plr in Game.Players.Values) { var cache = ItemGenerator.Cook(plr, "HoradricCacheA1"); - cache.Attributes[GameAttribute.Act] = 0; - cache.Attributes[GameAttribute.Item_Quality_Level] = Game.Difficulty; - cache.Attributes[GameAttribute.IsCrafted] = true; + cache.Attributes[GameAttributes.Act] = 0; + cache.Attributes[GameAttributes.Item_Quality_Level] = Game.Difficulty; + cache.Attributes[GameAttributes.IsCrafted] = true; plr.Inventory.PickUp(cache); if(plr.Toon.IsSeasoned) plr.GrantCriteria(74987258781748); } @@ -835,9 +834,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem foreach (var plr in Game.Players.Values) { var cache = ItemGenerator.Cook(plr, "HoradricCacheA2"); - cache.Attributes[GameAttribute.Act] = 100; - cache.Attributes[GameAttribute.Item_Quality_Level] = Game.Difficulty; - cache.Attributes[GameAttribute.IsCrafted] = true; + cache.Attributes[GameAttributes.Act] = 100; + cache.Attributes[GameAttributes.Item_Quality_Level] = Game.Difficulty; + cache.Attributes[GameAttributes.IsCrafted] = true; plr.Inventory.PickUp(cache); if (plr.Toon.IsSeasoned) plr.GrantCriteria(74987247833299); } @@ -876,9 +875,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem foreach (var plr in Game.Players.Values) { var cache = ItemGenerator.Cook(plr, "HoradricCacheA3"); - cache.Attributes[GameAttribute.Act] = 200; - cache.Attributes[GameAttribute.Item_Quality_Level] = Game.Difficulty; - cache.Attributes[GameAttribute.IsCrafted] = true; + cache.Attributes[GameAttributes.Act] = 200; + cache.Attributes[GameAttributes.Item_Quality_Level] = Game.Difficulty; + cache.Attributes[GameAttributes.IsCrafted] = true; plr.Inventory.PickUp(cache); if (plr.Toon.IsSeasoned) plr.GrantCriteria(74987248811185); @@ -918,9 +917,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem foreach (var plr in Game.Players.Values) { var cache = ItemGenerator.Cook(plr, "HoradricCacheA4"); - cache.Attributes[GameAttribute.Act] = 300; - cache.Attributes[GameAttribute.Item_Quality_Level] = Game.Difficulty; - cache.Attributes[GameAttribute.IsCrafted] = true; + cache.Attributes[GameAttributes.Act] = 300; + cache.Attributes[GameAttributes.Item_Quality_Level] = Game.Difficulty; + cache.Attributes[GameAttributes.IsCrafted] = true; plr.Inventory.PickUp(cache); if (plr.Toon.IsSeasoned) plr.GrantCriteria(74987256262166); } @@ -959,9 +958,9 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem foreach (var plr in Game.Players.Values) { var cache = ItemGenerator.Cook(plr, "HoradricCacheA5"); - cache.Attributes[GameAttribute.Act] = 400; - cache.Attributes[GameAttribute.Item_Quality_Level] = Game.Difficulty; - cache.Attributes[GameAttribute.IsCrafted] = true; + cache.Attributes[GameAttributes.Act] = 400; + cache.Attributes[GameAttributes.Item_Quality_Level] = Game.Difficulty; + cache.Attributes[GameAttributes.IsCrafted] = true; plr.Inventory.PickUp(cache); if (plr.Toon.IsSeasoned) plr.GrantCriteria(74987249495955); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/AttackTownBoominHome.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/AttackTownBoominHome.cs index fd1e8db..f0b7cc3 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/AttackTownBoominHome.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/AttackTownBoominHome.cs @@ -2,10 +2,6 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.MessageSystem; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations.Act_I { @@ -23,8 +19,8 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations.A { var Leah = world.GetActorBySNO(ActorSno._leahritual); - Leah.Attributes[GameAttribute.Damage_Weapon_Min, 0] = 5f; - Leah.Attributes[GameAttribute.Damage_Weapon_Delta, 0] = 5f; + Leah.Attributes[GameAttributes.Damage_Weapon_Min, 0] = 5f; + Leah.Attributes[GameAttributes.Damage_Weapon_Delta, 0] = 5f; world.PowerManager.RunPower(Leah, 190230); //130848 Leah.PlayEffectGroup(130848); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/AttackTownKilled.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/AttackTownKilled.cs index 3d83431..ac5ac34 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/AttackTownKilled.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/AttackTownKilled.cs @@ -2,10 +2,6 @@ using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.MessageSystem; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations { @@ -26,7 +22,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations if (Maghda == null) Maghda = AttackedTown.SpawnMonster(ActorSno._maghda_a_tempprojection, new Core.Types.Math.Vector3D(580f,563f,70f)); Maghda.EnterWorld(Maghda.Position); - Maghda.Attributes[GameAttribute.Untargetable] = true; + Maghda.Attributes[GameAttributes.Untargetable] = true; Maghda.Attributes.BroadcastChangedIfRevealed(); Maghda.PlayAnimation(5, AnimationSno.maghdaprojection_transition_in_01); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/CellarZombies.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/CellarZombies.cs index 55fd0e1..6be7214 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/CellarZombies.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/CellarZombies.cs @@ -1,18 +1,7 @@ -using DiIiS_NA.Core.Logging; -using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings; -using DiIiS_NA.GameServer.GSSystem.GameSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; +using DiIiS_NA.GameServer.GSSystem.ActorSystem; using DiIiS_NA.GameServer.MessageSystem; -using System.Linq; using System; using System.Collections.Generic; -using DiIiS_NA.LoginServer.AccountsSystem; -using DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents; -using DiIiS_NA.GameServer.Core.Types.Math; -using DiIiS_NA.Core.Helpers.Math; -using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; using DiIiS_NA.D3_GameServer.Core.Types.SNO; namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations @@ -61,7 +50,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations foreach (var actor in actorstotarget) { - actor.Attributes[GameAttribute.Quest_Monster] = true; + actor.Attributes[GameAttributes.Quest_Monster] = true; actor.Attributes.BroadcastChangedIfRevealed(); } StartConversation(world, 131339); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/DrownedTemple.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/DrownedTemple.cs index 2c99614..1020df4 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/DrownedTemple.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/DrownedTemple.cs @@ -6,9 +6,6 @@ using DiIiS_NA.GameServer.MessageSystem; using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations { @@ -182,7 +179,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations var sno = actorSnos[i]; DrownedTempleWorld.SpawnMonster(sno, AllTablets[i].Position); var actor = DrownedTempleWorld.GetActorBySNO(sno); - actor.Attributes[GameAttribute.Quest_Monster] = true; + actor.Attributes[GameAttributes.Quest_Monster] = true; Skeletons2List.Add(actor.GlobalID); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/LeahInn.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/LeahInn.cs index bf1465d..20b015d 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/LeahInn.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/LeahInn.cs @@ -48,7 +48,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations foreach (var actor in actorstotarget) { actor.PlayAnimation(9, AnimationSno.omninpc_male_hth_zombie_transition_intro_01, 1f); - actor.Attributes[GameAttribute.Quest_Monster] = true; + actor.Attributes[GameAttributes.Quest_Monster] = true; actor.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/SecondWave.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/SecondWave.cs index 6780e9d..481c0cb 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/SecondWave.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/SecondWave.cs @@ -1,18 +1,8 @@ -using DiIiS_NA.Core.Logging; -using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings; -using DiIiS_NA.GameServer.GSSystem.GameSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; +using DiIiS_NA.GameServer.GSSystem.ActorSystem; using DiIiS_NA.GameServer.MessageSystem; -using System.Linq; using System; using System.Collections.Generic; -using DiIiS_NA.LoginServer.AccountsSystem; -using DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents; using DiIiS_NA.GameServer.Core.Types.Math; -using DiIiS_NA.Core.Helpers.Math; -using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; using DiIiS_NA.D3_GameServer.Core.Types.SNO; namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations @@ -35,7 +25,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations foreach (var actor in wave2Actors) { var monster = world.SpawnMonster(ActorSno._zombiecrawler_a, new Vector3D(actor.Position.X, actor.Position.Y, actor.Position.Z)); - monster.Attributes[GameAttribute.God] = true; + monster.Attributes[GameAttributes.God] = true; monster.Attributes.BroadcastChangedIfRevealed(); (monster as Monster).Brain.DeActivate(); monsters.Add(monster); @@ -44,8 +34,8 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations { foreach (var monster in monsters) { - monster.Attributes[GameAttribute.Quest_Monster] = true; - monster.Attributes[GameAttribute.God] = false; + monster.Attributes[GameAttributes.Quest_Monster] = true; + monster.Attributes[GameAttributes.God] = false; (monster as Monster).Brain.Activate(); monster.Attributes.BroadcastChangedIfRevealed(); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/StartSceneinHome.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/StartSceneinHome.cs index 7393535..da0cb2d 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/StartSceneinHome.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/StartSceneinHome.cs @@ -1,12 +1,7 @@ using DiIiS_NA.Core.Logging; using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.MessageSystem; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Base; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations { @@ -27,8 +22,8 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations var encWorld = world.Game.GetWorld(WorldSno.trout_tristram_cainshouse_event); var Maghda = encWorld.GetActorBySNO(ActorSno._maghda_nolaugh); - Maghda.Attributes[GameAttribute.Hitpoints_Max] = 9000000f; - Maghda.Attributes[GameAttribute.Hitpoints_Cur] = Maghda.Attributes[GameAttribute.Hitpoints_Max_Total]; + Maghda.Attributes[GameAttributes.Hitpoints_Max] = 9000000f; + Maghda.Attributes[GameAttributes.Hitpoints_Cur] = Maghda.Attributes[GameAttributes.Hitpoints_Max_Total]; var Cultists = encWorld.GetActorsBySNO(ActorSno._triunesummoner_a_cainevent); foreach (var Cult in Cultists) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/SurviveTheWaves.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/SurviveTheWaves.cs index d968080..7932fc3 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/SurviveTheWaves.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act I/SurviveTheWaves.cs @@ -1,18 +1,9 @@ using DiIiS_NA.Core.Logging; using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations.Hirelings; -using DiIiS_NA.GameServer.GSSystem.GameSystem; -using DiIiS_NA.GameServer.GSSystem.PlayerSystem; using DiIiS_NA.GameServer.MessageSystem; -using System.Linq; using System; using System.Collections.Generic; -using DiIiS_NA.LoginServer.AccountsSystem; -using DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents; using DiIiS_NA.GameServer.Core.Types.Math; -using DiIiS_NA.Core.Helpers.Math; -using DiIiS_NA.GameServer.Core.Types.TagMap; -using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Animation; using DiIiS_NA.D3_GameServer.Core.Types.SNO; namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations @@ -41,7 +32,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations foreach (var actor in wave1Actors) { var monster = world.SpawnMonster(ActorSno._zombieskinny_a, new Vector3D(actor.Position.X, actor.Position.Y, actor.Position.Z)); - monster.Attributes[GameAttribute.God] = true; + monster.Attributes[GameAttributes.God] = true; monster.Attributes.BroadcastChangedIfRevealed(); (monster as Monster).Brain.DeActivate(); monsters.Add(monster); @@ -50,8 +41,8 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations { foreach (var monster in monsters) { - monster.Attributes[GameAttribute.Quest_Monster] = true; - monster.Attributes[GameAttribute.God] = false; + monster.Attributes[GameAttributes.Quest_Monster] = true; + monster.Attributes[GameAttributes.God] = false; (monster as Monster).Brain.Activate(); monster.Attributes.BroadcastChangedIfRevealed(); } @@ -61,7 +52,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations foreach (var actor in wave1Actors) { var monster = world.SpawnMonster(ActorSno._zombieskinny_a, new Vector3D(actor.Position.X, actor.Position.Y, actor.Position.Z)); - monster.Attributes[GameAttribute.God] = true; + monster.Attributes[GameAttributes.God] = true; monster.Attributes.BroadcastChangedIfRevealed(); (monster as Monster).Brain.DeActivate(); monsters.Add(monster); @@ -69,8 +60,8 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations { foreach (var monster in monsters) { - monster.Attributes[GameAttribute.Quest_Monster] = true; - monster.Attributes[GameAttribute.God] = false; + monster.Attributes[GameAttributes.Quest_Monster] = true; + monster.Attributes[GameAttributes.God] = false; (monster as Monster).Brain.Activate(); monster.Attributes.BroadcastChangedIfRevealed(); } @@ -101,7 +92,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations var actor = world.GetActorBySNO(sno); foreach (var player in world.Players) { - actor.Attributes[GameAttribute.NPC_Is_Operatable] = status; + actor.Attributes[GameAttributes.NPC_Is_Operatable] = status; } return true; } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act II/BelialStageOne.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act II/BelialStageOne.cs index f0888c6..a42bf47 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act II/BelialStageOne.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act II/BelialStageOne.cs @@ -20,7 +20,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations { foreach (var actor in world.Actors.Values.Where(a => a is Monster || a is Player || a is Minion || a is Hireling)) { - actor.Attributes[GameAttribute.Stunned] = false; + actor.Attributes[GameAttributes.Stunned] = false; actor.Attributes.BroadcastChangedIfRevealed(); } foreach (var plr in world.Players.Values) @@ -32,7 +32,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents.Implementations world.GetActorBySNO(ActorSno._belial_trueform).Destroy(); var Belial = world.SpawnMonster(ActorSno._belial_trueform, world.GetActorBySNO(ActorSno._belialboyemperor).Position); - Belial.Attributes[GameAttribute.Invulnerable] = true; + Belial.Attributes[GameAttributes.Invulnerable] = true; Belial.Attributes.BroadcastChangedIfRevealed(); (Belial as Monster).Brain.DeActivate(); foreach (var Adr in world.GetActorsBySNO(ActorSno._adria)) diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act V/TheFallofWestmarch/AfterKillBoss.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act V/TheFallofWestmarch/AfterKillBoss.cs index a9c9d83..21fad47 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act V/TheFallofWestmarch/AfterKillBoss.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act V/TheFallofWestmarch/AfterKillBoss.cs @@ -17,7 +17,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents foreach (var Tyr in world.GetActorsBySNO(ActorSno._x1_tyrael_hurt)) { (Tyr as ActorSystem.InteractiveNPC).Conversations.Clear(); - Tyr.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + Tyr.Attributes[GameAttributes.Conversation_Icon, 0] = 2; Tyr.Attributes.BroadcastChangedIfRevealed(); AddQuestConversation(Tyr, 252100); } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act V/TheFallofWestmarch/AfterKillMonsters.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act V/TheFallofWestmarch/AfterKillMonsters.cs index 05ca95d..67e1e8a 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act V/TheFallofWestmarch/AfterKillMonsters.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/Implementations/Act V/TheFallofWestmarch/AfterKillMonsters.cs @@ -16,7 +16,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents var Lorath = world.ShowOnlyNumNPC(ActorSno._x1_npc_lorathnahr, 0) as ActorSystem.InteractiveNPC; Tyrael.Conversations.Clear(); - Tyrael.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + Tyrael.Attributes[GameAttributes.Conversation_Icon, 0] = 2; Tyrael.Attributes.BroadcastChangedIfRevealed(); world.Game.QuestManager.Advance(); diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/SideTarget.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/SideTarget.cs index acc3e5c..b03c941 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/SideTarget.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestEvents/SideTarget.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using DiIiS_NA.D3_GameServer.Core.Types.SNO; +using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.MessageSystem; namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents @@ -15,7 +11,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem.QuestEvents foreach (var actr in world.Actors.Values) if (actr.SNO == ActorSno._zombiefemale_a_tristramquest_unique) { - actr.Attributes[GameAttribute.Quest_Monster] = false; + actr.Attributes[GameAttributes.Quest_Monster] = false; actr.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestProgress.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestProgress.cs index f624206..1951e36 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestProgress.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/QuestSystem/QuestProgress.cs @@ -2,7 +2,6 @@ using DiIiS_NA.Core.Logging; using DiIiS_NA.D3_GameServer.Core.Types.SNO; using DiIiS_NA.GameServer.GSSystem.ActorSystem; -using DiIiS_NA.GameServer.GSSystem.ActorSystem.Implementations; using DiIiS_NA.GameServer.GSSystem.GameSystem; using DiIiS_NA.GameServer.GSSystem.MapSystem; using DiIiS_NA.GameServer.MessageSystem; @@ -11,8 +10,6 @@ using DiIiS_NA.GameServer.MessageSystem.Message.Fields; using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.GSSystem.QuestSystem { @@ -159,7 +156,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem { foreach (var actr in world.Actors.Values.Where(x => x.SNO == sno)) { - actr.Attributes[GameAttribute.Quest_Monster] = true; + actr.Attributes[GameAttributes.Quest_Monster] = true; actr.Attributes.BroadcastChangedIfRevealed(); } } @@ -167,7 +164,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem { foreach (var actr in world.Actors.Values.Where(x => x.SNO == sno)) { - actr.Attributes[GameAttribute.Quest_Monster] = false; + actr.Attributes[GameAttributes.Quest_Monster] = false; actr.Attributes.BroadcastChangedIfRevealed(); } } @@ -308,13 +305,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem if (actor == null) return false; - actor.Attributes[GameAttribute.Team_Override] = (status ? -1 : 2); - actor.Attributes[GameAttribute.Untargetable] = !status; - actor.Attributes[GameAttribute.NPC_Is_Operatable] = status; - actor.Attributes[GameAttribute.Operatable] = status; - actor.Attributes[GameAttribute.Operatable_Story_Gizmo] = status; - actor.Attributes[GameAttribute.Disabled] = !status; - actor.Attributes[GameAttribute.Immunity] = !status; + actor.Attributes[GameAttributes.Team_Override] = (status ? -1 : 2); + actor.Attributes[GameAttributes.Untargetable] = !status; + actor.Attributes[GameAttributes.NPC_Is_Operatable] = status; + actor.Attributes[GameAttributes.Operatable] = status; + actor.Attributes[GameAttributes.Operatable_Story_Gizmo] = status; + actor.Attributes[GameAttributes.Disabled] = !status; + actor.Attributes[GameAttributes.Immunity] = !status; actor.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -326,13 +323,13 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem if (actor == null) return false; - actor.Attributes[GameAttribute.NPC_Is_Operatable] = status; - actor.Attributes[GameAttribute.Operatable] = status; - actor.Attributes[GameAttribute.Operatable_Story_Gizmo] = status; - actor.Attributes[GameAttribute.Untargetable] = !status; - actor.Attributes[GameAttribute.Disabled] = !status; - actor.Attributes[GameAttribute.Immunity] = !status; - actor.Attributes[GameAttribute.Hidden] = !status; + actor.Attributes[GameAttributes.NPC_Is_Operatable] = status; + actor.Attributes[GameAttributes.Operatable] = status; + actor.Attributes[GameAttributes.Operatable_Story_Gizmo] = status; + actor.Attributes[GameAttributes.Untargetable] = !status; + actor.Attributes[GameAttributes.Disabled] = !status; + actor.Attributes[GameAttributes.Immunity] = !status; + actor.Attributes[GameAttributes.Hidden] = !status; actor.Attributes.BroadcastChangedIfRevealed(); return true; } @@ -365,7 +362,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem { NPC.Conversations.Clear(); NPC.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(conversation)); - NPC.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + NPC.Attributes[GameAttributes.Conversation_Icon, 0] = 2; NPC.Attributes.BroadcastChangedIfRevealed(); NPC.ForceConversationSNO = conversation; } @@ -377,7 +374,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem NPC = N as InteractiveNPC; NPC.Conversations.Clear(); NPC.Conversations.Add(new ActorSystem.Interactions.ConversationInteraction(conversation)); - NPC.Attributes[GameAttribute.Conversation_Icon, 0] = 2; + NPC.Attributes[GameAttributes.Conversation_Icon, 0] = 2; NPC.Attributes.BroadcastChangedIfRevealed(); NPC.ForceConversationSNO = conversation; } @@ -392,7 +389,7 @@ namespace DiIiS_NA.GameServer.GSSystem.QuestSystem if (NPC != null) { NPC.Conversations.Clear(); - NPC.Attributes[GameAttribute.Conversation_Icon, 0] = 1; + NPC.Attributes[GameAttributes.Conversation_Icon, 0] = 1; NPC.Attributes.BroadcastChangedIfRevealed(); } } diff --git a/src/DiIiS-NA/D3-GameServer/GSSystem/SkillsSystem/SkillSet.cs b/src/DiIiS-NA/D3-GameServer/GSSystem/SkillsSystem/SkillSet.cs index c8c29f5..cb3bb92 100644 --- a/src/DiIiS-NA/D3-GameServer/GSSystem/SkillsSystem/SkillSet.cs +++ b/src/DiIiS-NA/D3-GameServer/GSSystem/SkillsSystem/SkillSet.cs @@ -144,6 +144,6 @@ namespace DiIiS_NA.GameServer.GSSystem.SkillsSystem public bool HasSkillWithRune(int skillId, int runeId) => ActiveSkills.Any(s => s.snoSkill == skillId && s.snoRune == runeId); - public bool HasItemPassiveProc(int passiveId) => (float)FastRandom.Instance.NextDouble() < Player.Attributes[GameAttribute.Item_Power_Passive, passiveId]; + public bool HasItemPassiveProc(int passiveId) => (float)FastRandom.Instance.NextDouble() < Player.Attributes[GameAttributes.Item_Power_Passive, passiveId]; } } diff --git a/src/DiIiS-NA/D3-GameServer/MessageSystem/GameAttribute.List.cs b/src/DiIiS-NA/D3-GameServer/MessageSystem/GameAttribute.List.cs index e2d39e8..35d28af 100644 --- a/src/DiIiS-NA/D3-GameServer/MessageSystem/GameAttribute.List.cs +++ b/src/DiIiS-NA/D3-GameServer/MessageSystem/GameAttribute.List.cs @@ -1,1519 +1,1502 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DiIiS_NA.GameServer.MessageSystem { - public partial class GameAttribute + public static class GameAttributes { - public static readonly GameAttribute[] Attributes; - - static GameAttribute() + public static readonly Dictionary Attributes; + static GameAttributes() { - Attributes = typeof(GameAttribute).GetFields() - .Where(a => - a.IsStatic && - a.FieldType.Name is nameof(GameAttributeI) or nameof(GameAttributeF) or nameof(GameAttributeB)) + Attributes = typeof(GameAttributes).GetFields() + .Where(a => a.IsStatic && a.FieldType.IsSubclassOf(typeof(GameAttribute))) .Select(a => a.GetValue(null) as GameAttribute) - .OrderBy(a => a.Id) - .ToArray(); - - ScriptedAttributeInitializer.ProcessAttributes(Attributes); + .ToDictionary(a => a.Id, a => a); + ScriptedAttributeInitializer.ProcessAttributes(Attributes.Values); } - #region 2.7.4 - //* - public static readonly GameAttributeF Axe_Bad_Data = new GameAttributeF(0, 0, -1, 0, 0, "", "", "Axe_Bad_Data", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Attribute_Timer = new GameAttributeF(1, 0, -1, 0, 0, "", "", "Attribute_Timer", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Attribute_Pool = new GameAttributeF(2, 0, -1, 0, 0, "", "", "Attribute_Pool", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Death_Count = new GameAttributeF(3, 0, -1, 0, 0, "", "", "Death_Count", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Respawn_Game_Time = new GameAttributeF(7, 0, -1, 0, 0, "", "", "Respawn_Game_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Strength = new GameAttributeF(10, 0, -1, 0, 0, "", "", "Strength", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Dexterity = new GameAttributeF(11, 0, -1, 0, 0, "", "", "Dexterity", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Intelligence = new GameAttributeF(12, 0, -1, 0, 0, "", "", "Intelligence", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Vitality = new GameAttributeF(13, 0, -1, 0, 0, "", "", "Vitality", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Strength_Total = new GameAttributeF(14, 0, -1, 0, 0, "((Strength + Stats_All_Bonus + Strength_Bonus + ((Strength_Item + Cube_Enchanted_Strength_Item) * Core_Attributes_From_Item_Bonus_Multiplier)) * (1 + Strength_Bonus_Percent)) * (1-Strength_Reduction_Percent)", "", "Strength_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Dexterity_Total = new GameAttributeF(15, 0, -1, 0, 0, "((Dexterity + Stats_All_Bonus + Dexterity_Bonus + ((Dexterity_Item + Cube_Enchanted_Dexterity_Item) * Core_Attributes_From_Item_Bonus_Multiplier)) * (1 + Dexterity_Bonus_Percent)) * (1-Dexterity_Reduction_Percent)", "", "Dexterity_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Intelligence_Total = new GameAttributeF(16, 0, -1, 0, 0, "((Intelligence + Stats_All_Bonus + Intelligence_Bonus + ((Intelligence_Item + Cube_Enchanted_Intelligence_Item) * Core_Attributes_From_Item_Bonus_Multiplier)) * (1 + Intelligence_Bonus_Percent)) * (1-Intelligence_Reduction_Percent)", "", "Intelligence_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Vitality_Total = new GameAttributeF(17, 0, -1, 0, 0, "((Vitality + Stats_All_Bonus + Vitality_Bonus + ((Vitality_Item + Cube_Enchanted_Vitality_Item) * Core_Attributes_From_Item_Bonus_Multiplier)) * (1 + Vitality_Bonus_Percent)) * (1-Vitality_Reduction_Percent)", "", "Vitality_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Armor = new GameAttributeF(31, 0, -1, 0, 0, "", "", "Armor", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Armor_Bonus_Percent = new GameAttributeF(32, 0, -1, 0, 0, "", "", "Armor_Bonus_Percent", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Armor_Item = new GameAttributeF(33, 0, -1, 0, 0, "", "0", "Armor_Item", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Armor_Bonus_Item = new GameAttributeF(34, 0, -1, 0, 0, "", "", "Armor_Bonus_Item", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Armor_Item_Percent = new GameAttributeF(35, 0, -1, 0, 0, "", "0", "Armor_Item_Percent", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Armor_Item_SubTotal = new GameAttributeF(36, 0, -1, 0, 0, "FLOOR((Armor_Item + Armor_Bonus_Item) * (Armor_Item_Percent + 1))", "", "Armor_Item_SubTotal", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Armor_Item_Total = new GameAttributeF(37, 0, -1, 0, 0, "(Armor_Item > 0)?(Max(Armor_Item_SubTotal, 1)):Armor_Item_SubTotal", "", "Armor_Item_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Armor_Total = new GameAttributeF(38, 0, -1, 0, 0, "FLOOR((Armor + Armor_Item_Total + Strength_Total + Dexterity_Total) * (Armor_Bonus_Percent + 1))", "", "Armor_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Experience_Granted_Hi = new GameAttributeF(39, 0, -1, 0, 1, "", "", "Experience_Granted_Hi", GameAttributeEncoding.Float32, 1, 0, 0, 32); - public static readonly GameAttributeF Experience_Granted_Low = new GameAttributeF(40, 0, -1, 0, 1, "", "", "Experience_Granted_Low", GameAttributeEncoding.Float32, 1, 0, 0, 32); - public static readonly GameAttributeI Experience_Next_Hi = new GameAttributeI(41, 0, -1, 0, 1, "", "", "Experience_Next_Hi", GameAttributeEncoding.Int, 1, 0, 0, 32); - public static readonly GameAttributeI Experience_Next_Lo = new GameAttributeI(42, 0, -1, 0, 1, "", "", "Experience_Next_Lo", GameAttributeEncoding.Int, 1, 0, 0, 32); - public static readonly GameAttributeI Alt_Experience_Next_Hi = new GameAttributeI(43, 0, -1, 0, 0, "", "", "Alt_Experience_Next_Hi", GameAttributeEncoding.Int, 1, 0, 0, 32); - public static readonly GameAttributeI Alt_Experience_Next_Lo = new GameAttributeI(44, 0, -1, 0, 0, "", "", "Alt_Experience_Next_Lo", GameAttributeEncoding.Int, 1, 0, 0, 32); - public static readonly GameAttributeI Rest_Experience_Hi = new GameAttributeI(45, 0, -1, 0, 0, "", "", "Rest_Experience_Hi", GameAttributeEncoding.Int, 1, 0, 0, 32); - public static readonly GameAttributeI Rest_Experience_Lo = new GameAttributeI(46, 0, -1, 0, 0, "", "", "Rest_Experience_Lo", GameAttributeEncoding.Int, 1, 0, 0, 32); - public static readonly GameAttributeI Gold_Granted = new GameAttributeI(48, 0, -1, 0, 1, "", "", "Gold_Granted", GameAttributeEncoding.Int, 136, 0, 0, 32); - public static readonly GameAttributeI Gold = new GameAttributeI(49, 0, -1, 0, 1, "", "", "Gold", GameAttributeEncoding.Int, 136, 0, 0, 32); - public static readonly GameAttributeF Gold_Find = new GameAttributeF(50, 0, -1, 0, 0, "", "", "Gold_Find", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Gold_Find_Uncapped = new GameAttributeF(51, 0, -1, 0, 0, "", "", "Gold_Find_Uncapped", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Gold_Find_Handicap = new GameAttributeF(52, 0, -1, 0, 0, "", "", "Gold_Find_Handicap", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Gold_Find_Alt_Levels_Total = new GameAttributeF(53, 0, -1, 0, 0, "Alt_Level * 0.00", "", "Gold_Find_Alt_Levels_Total", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Gold_Find_Total = new GameAttributeF(56, 0, -1, 0, 0, "((1.0 + Gold_Find_Uncapped + Gold_Find_Alt_Levels_Total + Gold_Find + Gold_Find_Community_Buff + Gold_Find_Potion_Buff) * (1.0 + Gold_Find_Handicap))-1.0", "", "Gold_Find_Total", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Magic_Find = new GameAttributeF(60, 0, -1, 0, 0, "", "", "Magic_Find", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Magic_Find_Uncapped = new GameAttributeF(61, 0, -1, 0, 0, "", "", "Magic_Find_Uncapped", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Magic_Find_Handicap = new GameAttributeF(62, 0, -1, 0, 0, "", "", "Magic_Find_Handicap", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Magic_Find_Alt_Levels_Total = new GameAttributeF(63, 0, -1, 0, 0, "Alt_Level * 0.00", "", "Magic_Find_Alt_Levels_Total", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Magic_Find_Capped_Subtotal = new GameAttributeF(64, 0, -1, 0, 0, "Min((Magic_Find_Alt_Levels_Total + Magic_Find), 3.0)", "", "Magic_Find_Capped_Subtotal", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Magic_Find_Total = new GameAttributeF(65, 0, -1, 0, 0, "Magic_Find_Uncapped + Magic_Find_Handicap + Magic_Find_Capped_Subtotal", "", "Magic_Find_Total", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Experience_Bonus_Percent_Total = new GameAttributeF(80, 0, -1, 0, 0, "Experience_Bonus_Percent * Experience_Bonus_Percent_Handicap", "", "Experience_Bonus_Percent_Total", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Health_Globe_Bonus_Health = new GameAttributeF(86, 0, -1, 0, 0, "", "", "Health_Globe_Bonus_Health", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Loading_Player_ACD = new GameAttributeF(107, -1, -1, 0, 0, "", "", "Loading_Player_ACD", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Loading_Power_SNO = new GameAttributeF(108, -1, -1, 0, 0, "", "", "Loading_Power_SNO", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Loading_Anim_Tag = new GameAttributeF(109, -1, -1, 0, 0, "", "", "Loading_Anim_Tag", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Hitpoints_Cur = new GameAttributeF(115, 0, -1, 0, 0, "Min(Hitpoints_Cur.Agg, Hitpoints_Max_Total)", "", "Hitpoints_Cur", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Hitpoints_Granted = new GameAttributeF(120, 0, -1, 0, 0, "", "", "Hitpoints_Granted", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Hitpoints_Max_Total = new GameAttributeF(124, 0, -1, 0, 0, "Max((Hitpoints_Max + Hitpoints_Total_From_Level + Hitpoints_Total_From_Vitality + Hitpoints_Max_Bonus) * (Hitpoints_Max_Percent_Bonus + Hitpoints_Max_Percent_Bonus_Item + 1) * (Hitpoints_Max_Percent_Bonus_Multiplicative), 1)", "", "Hitpoints_Max_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Hitpoints_Regen_Per_Second_Subtotal = new GameAttributeF(130, 0, -1, 0, 0, "(Hitpoints_Regen_Per_Second + Hitpoints_Regen_Per_Second_Bonus) * (1 + Hitpoints_Regen_Bonus_Percent)", "", "Hitpoints_Regen_Per_Second_Subtotal", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Hitpoints_Regen_Per_Second_Total = new GameAttributeF(133, 0, -1, 0, 0, "((Hitpoints_Regen_Per_Second_Subtotal + (Hitpoints_Regen_Per_Second_Bonus_From_Skills * (1 + Hitpoints_Regen_Bonus_Percent))) * Pin(1-Hitpoints_Regen_Reduction_Percent, 0, 1)) + Hitpoints_Regen_Per_Second_Health_Globe", "", "Hitpoints_Regen_Per_Second_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Hitpoints_Max_Percent_Bonus = new GameAttributeF(134, 0, -1, 0, 0, "", "", "Hitpoints_Max_Percent_Bonus", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Hitpoints_Max_Percent_Bonus_Multiplicative = new GameAttributeF(136, 1065353216, -1, 0, 0, "", "", "Hitpoints_Max_Percent_Bonus_Multiplicative", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF DOT_Damage_Taken_Queued = new GameAttributeF(140, 0, -1, 0, 0, "", "", "DOT_Damage_Taken_Queued", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF DOT_Damage_Taken_Queued_Tick = new GameAttributeF(141, 0, -1, 0, 0, "", "", "DOT_Damage_Taken_Queued_Tick", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF DOT_Damage_Taken_Queued_Player = new GameAttributeF(142, 0, -1, 0, 0, "", "", "DOT_Damage_Taken_Queued_Player", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF DOT_Damage_Taken_Queued_Player_Tick = new GameAttributeF(143, 0, -1, 0, 0, "", "", "DOT_Damage_Taken_Queued_Player_Tick", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Healing_Received_Queued = new GameAttributeF(144, 0, -1, 0, 0, "", "", "Healing_Received_Queued", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Healing_Received_Queued_Tick = new GameAttributeF(145, 0, -1, 0, 0, "", "", "Healing_Received_Queued_Tick", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Staggered_Damage_Fraction = new GameAttributeF(146, 0, -1, 0, 0, "", "", "Staggered_Damage_Fraction", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Staggered_Damage_Duration = new GameAttributeF(147, 0, -1, 0, 0, "", "", "Staggered_Damage_Duration", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Resource_Cur = new GameAttributeF(150, 0, 10, 0, 0, "Max(Resource_Cur.Agg, 0)", "", "Resource_Cur", GameAttributeEncoding.Float32, 128, 0, 0, 32); - public static readonly GameAttributeF Resource_Max_Total = new GameAttributeF(153, 0, 10, 0, 0, "", "Max((Resource_Max + ((Level#NONE - 1) * Resource_Factor_Level) + Resource_Max_Bonus) * (Resource_Max_Percent_Bonus + 1), 0)", "Resource_Max_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Movement_Scalar_Total = new GameAttributeF(185, 0, -1, 0, 0, "Movement_Scalar_Capped_Total + Movement_Scalar_Uncapped_Bonus", "", "Movement_Scalar_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Movement_Scalar_Cap = new GameAttributeF(187, 0, -1, 0, 0, "", "", "Movement_Scalar_Cap", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Item = new GameAttributeF(194, 0, -1, 0, 0, "", "0", "Attacks_Per_Second_Item", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Item_Percent = new GameAttributeF(195, 0, -1, 0, 0, "", "0", "Attacks_Per_Second_Item_Percent", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Item_Subtotal = new GameAttributeF(196, 0, -1, 0, 0, "Attacks_Per_Second_Item * (1 + Attacks_Per_Second_Item_Percent)", "0", "Attacks_Per_Second_Item_Subtotal", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Item_Bonus = new GameAttributeF(197, 0, -1, 0, 0, "", "", "Attacks_Per_Second_Item_Bonus", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Item_Total = new GameAttributeF(198, 0, -1, 0, 0, "(Attacks_Per_Second_Item_Subtotal + Attacks_Per_Second_Item_Bonus)", "", "Attacks_Per_Second_Item_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second = new GameAttributeF(199, 0, -1, 0, 0, "", "", "Attacks_Per_Second", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Bonus = new GameAttributeF(200, 0, -1, 0, 0, "", "", "Attacks_Per_Second_Bonus", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Total = new GameAttributeF(201, 0, -1, 0, 0, "Min(5.0, Max(0.01, (((Attacks_Per_Second_Item_CurrentHand > 0.0) ? Attacks_Per_Second_Item_CurrentHand : Attacks_Per_Second) + Attacks_Per_Second_Bonus + Attacks_Per_Second_Item_Bonus) * Attacks_Per_Second_Percent_Subtotal))", "", "Attacks_Per_Second_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Percent_Cap = new GameAttributeF(202, 0, -1, 0, 0, "", "", "Attacks_Per_Second_Percent_Cap", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Percent = new GameAttributeF(203, 0, -1, 0, 0, "", "", "Attacks_Per_Second_Percent", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Percent_Uncapped = new GameAttributeF(204, 0, -1, 0, 0, "", "", "Attacks_Per_Second_Percent_Uncapped", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Percent_Reduction = new GameAttributeF(205, 0, -1, 0, 0, "", "", "Attacks_Per_Second_Percent_Reduction", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Percent_Subtotal = new GameAttributeF(206, 0, -1, 0, 0, "Max(0.1, (1 + (Min(Attacks_Per_Second_Percent_Cap, Attacks_Per_Second_Percent)) + Attacks_Per_Second_Percent_Uncapped) * (1-Attacks_Per_Second_Percent_Reduction))", "", "Attacks_Per_Second_Percent_Subtotal", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Delta_Total = new GameAttributeF(213, 0, -1, 0, 0, "Max(Damage_Delta-Damage_Bonus_Min + Damage_Weapon_Delta_Total_CurrentHand, 0)", "", "Damage_Delta_Total", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Min = new GameAttributeF(214, 0, -1, 0, 0, "", "", "Damage_Min", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Bonus_Min = new GameAttributeF(215, 0, -1, 0, 0, "", "", "Damage_Bonus_Min", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Min_Total = new GameAttributeF(216, 0, -1, 0, 0, "Damage_Min_Subtotal", "", "Damage_Min_Total", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Delta_Total_All = new GameAttributeF(217, 0, -1, 0, 0, "", "", "Damage_Delta_Total_All", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Min_Total_All = new GameAttributeF(218, 0, -1, 0, 0, "", "", "Damage_Min_Total_All", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Average_Total_All = new GameAttributeF(219, 0, -1, 0, 0, "", "", "Damage_Average_Total_All", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Min_Subtotal = new GameAttributeF(220, 0, -1, 0, 0, "Damage_Min + Damage_Bonus_Min + Damage_Weapon_Min_Total_CurrentHand", "", "Damage_Min_Subtotal", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Percent_All_From_Skills = new GameAttributeF(221, 0, -1, 0, 0, "", "", "Damage_Percent_All_From_Skills", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Delta = new GameAttributeF(222, 0, -1, 0, 0, "", "", "Damage_Weapon_Delta", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Delta_SubTotal = new GameAttributeF(223, 0, -1, 0, 0, "(Damage_Weapon_Delta > 0.0) ? (Max(1, Damage_Weapon_Delta - Damage_Weapon_Bonus_Min)) : Damage_Weapon_Delta", "", "Damage_Weapon_Delta_SubTotal", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Max = new GameAttributeF(224, 0, -1, 0, 0, "(Damage_Weapon_Min + Damage_Weapon_Delta)", "", "Damage_Weapon_Max", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Max_Total = new GameAttributeF(225, 0, -1, 0, 0, "(Damage_Weapon_Min_Total + Damage_Weapon_Delta_Total)", "", "Damage_Weapon_Max_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Max_Total_All = new GameAttributeF(226, 0, -1, 0, 0, "(Damage_Weapon_Max_Total#Physical + Damage_Weapon_Max_Total#Fire + Damage_Weapon_Max_Total#Cold + Damage_Weapon_Max_Total#Lightning + Damage_Weapon_Max_Total#Poison + Damage_Weapon_Max_Total#Arcane + Damage_Weapon_Max_Total#Holy)", "", "Damage_Weapon_Max_Total_All", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Delta_Total = new GameAttributeF(227, 0, -1, 0, 0, "Max((Damage_Weapon_Delta_SubTotal + Damage_Weapon_Bonus_Delta + Damage_Weapon_Bonus_Delta_X1) * (1 + Damage_Weapon_Percent_Total), 0)", "", "Damage_Weapon_Delta_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Delta_Total_All = new GameAttributeF(228, 0, -1, 0, 0, "(Damage_Weapon_Delta_Total#Physical + Damage_Weapon_Delta_Total#Fire + Damage_Weapon_Delta_Total#Cold + Damage_Weapon_Delta_Total#Lightning + Damage_Weapon_Delta_Total#Poison + Damage_Weapon_Delta_Total#Arcane + Damage_Weapon_Delta_Total#Holy)", "", "Damage_Weapon_Delta_Total_All", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Bonus_Delta = new GameAttributeF(229, 0, -1, 0, 0, "", "", "Damage_Weapon_Bonus_Delta", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Bonus_Delta_X1 = new GameAttributeF(230, 0, -1, 0, 0, "", "", "Damage_Weapon_Bonus_Delta_X1", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Min = new GameAttributeF(231, 0, -1, 0, 0, "", "", "Damage_Weapon_Min", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Min_Total = new GameAttributeF(232, 0, -1, 0, 0, "(Damage_Weapon_Min + Damage_Weapon_Bonus_Min + Damage_Weapon_Bonus_Min_X1 + Damage_Weapon_Bonus_Flat) * (1 + Damage_Weapon_Percent_Total)", "", "Damage_Weapon_Min_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Min_Total_All = new GameAttributeF(233, 0, -1, 0, 0, "(Damage_Weapon_Min_Total#Physical + Damage_Weapon_Min_Total#Fire + Damage_Weapon_Min_Total#Cold + Damage_Weapon_Min_Total#Lightning + Damage_Weapon_Min_Total#Poison + Damage_Weapon_Min_Total#Arcane + Damage_Weapon_Min_Total#Holy)", "", "Damage_Weapon_Min_Total_All", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Average = new GameAttributeF(234, 0, -1, 0, 0, "(Damage_Weapon_Min + (Damage_Weapon_Delta/2))", "", "Damage_Weapon_Average", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Average_Total = new GameAttributeF(235, 0, -1, 0, 0, "(Damage_Weapon_Min_Total + (Damage_Weapon_Delta_Total/2))", "", "Damage_Weapon_Average_Total", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Average_Total_All = new GameAttributeF(236, 0, -1, 0, 0, "(Damage_Weapon_Min_Total_All + (Damage_Weapon_Delta_Total_All/2))", "", "Damage_Weapon_Average_Total_All", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Bonus_Min = new GameAttributeF(237, 0, -1, 0, 0, "", "", "Damage_Weapon_Bonus_Min", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Bonus_Min_X1 = new GameAttributeF(238, 0, -1, 0, 0, "", "", "Damage_Weapon_Bonus_Min_X1", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Bonus_Flat = new GameAttributeF(239, 0, -1, 0, 0, "", "", "Damage_Weapon_Bonus_Flat", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Percent_Bonus = new GameAttributeF(240, 0, -1, 0, 0, "", "", "Damage_Weapon_Percent_Bonus", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Percent_All = new GameAttributeF(241, 0, -1, 0, 0, "", "", "Damage_Weapon_Percent_All", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Percent_Total = new GameAttributeF(242, 0, -1, 0, 0, "", "", "Damage_Weapon_Percent_Total", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Type_Percent_Bonus = new GameAttributeF(243, 0, -1, 0, 0, "", "", "Damage_Type_Percent_Bonus", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Dealt_Percent_Bonus = new GameAttributeF(244, 0, -1, 0, 0, "", "", "Damage_Dealt_Percent_Bonus", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Percent_Bonus_Witchdoctor = new GameAttributeF(250, 0, -1, 0, 0, "", "", "Damage_Percent_Bonus_Witchdoctor", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Percent_Bonus_Wizard = new GameAttributeF(251, 0, -1, 0, 0, "", "", "Damage_Percent_Bonus_Wizard", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Crit_Percent_Base = new GameAttributeF(252, 0, -1, 0, 0, "", "", "Crit_Percent_Base", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Crit_Percent_Bonus_Capped = new GameAttributeF(253, 0, -1, 0, 0, "", "", "Crit_Percent_Bonus_Capped", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Crit_Percent_Bonus_Uncapped = new GameAttributeF(254, 0, -1, 0, 0, "", "", "Crit_Percent_Bonus_Uncapped", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Crit_Percent_Bonus_Hide_From_DPS = new GameAttributeF(255, 0, -1, 0, 0, "", "", "Crit_Percent_Bonus_Hide_From_DPS", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Crit_Percent_Cap = new GameAttributeF(256, 0, -1, 0, 0, "", "", "Crit_Percent_Cap", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Crit_Damage_Cap = new GameAttributeF(257, 0, -1, 0, 0, "", "", "Crit_Damage_Cap", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Crit_Damage_Percent = new GameAttributeF(258, 0, -1, 0, 0, "", "", "Crit_Damage_Percent", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Crit_Damage_Percent_Uncapped = new GameAttributeF(259, 0, -1, 0, 0, "", "", "Crit_Damage_Percent_Uncapped", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Crit_Effect_Time = new GameAttributeF(260, 0, -1, 0, 0, "", "", "Crit_Effect_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Damage_Reduction_Last_Tick = new GameAttributeI(265, 0, -1, 0, 0, "", "", "Damage_Reduction_Last_Tick", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF Block_Amount_Total_Min = new GameAttributeF(275, 0, -1, 0, 0, "(Block_Amount + Block_Amount_Item_Min + Block_Amount_Item_Bonus) * (1 + Block_Amount_Bonus_Percent)", "", "Block_Amount_Total_Min", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Block_Amount_Total_Max = new GameAttributeF(276, 0, -1, 0, 0, "(Block_Amount + Block_Amount_Item_Min + Block_Amount_Item_Delta + Block_Amount_Item_Bonus) * (1 + Block_Amount_Bonus_Percent)", "", "Block_Amount_Total_Max", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Dodge_Chance_Bonus_Additive = new GameAttributeF(283, 0, -1, 0, 0, "", "", "Dodge_Chance_Bonus_Additive", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Dodge_Chance_Bonus_Hide_From_Toughness = new GameAttributeF(284, 0, -1, 0, 0, "", "", "Dodge_Chance_Bonus_Hide_From_Toughness", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Damage_MainActor = new GameAttributeF(295, -1, -1, 0, 0, "", "", "Last_Damage_MainActor", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_ACD_Attacked = new GameAttributeF(296, -1, -1, 0, 0, "", "", "Last_ACD_Attacked", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Thorns_Percent = new GameAttributeF(336, 0, -1, 0, 0, "", "", "Thorns_Percent", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Thorns_Percent_All = new GameAttributeF(337, 0, -1, 0, 0, "", "", "Thorns_Percent_All", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Thorns_Percent_Total = new GameAttributeF(338, 0, -1, 0, 0, "Thorns_Percent + Thorns_Percent_All#NONE", "", "Thorns_Percent_Total", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Thorns_Fixed = new GameAttributeF(339, 0, -1, 0, 0, "", "", "Thorns_Fixed", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Thorns_Fixed_Bonus_Percent = new GameAttributeF(340, 0, -1, 0, 0, "", "", "Thorns_Fixed_Bonus_Percent", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Thorns_Fixed_Total = new GameAttributeF(341, 0, -1, 0, 0, "Thorns_Fixed * (1.0 + Thorns_Fixed_Bonus_Percent#NONE)", "", "Thorns_Fixed_Total", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Thorns_AOE_Radius = new GameAttributeF(342, 0, -1, 0, 0, "", "", "Thorns_AOE_Radius", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF On_First_Hit_Thorns_Percent = new GameAttributeF(344, 0, -1, 0, 0, "", "", "On_First_Hit_Thorns_Percent", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Steal_Health_Percent = new GameAttributeF(345, 0, -1, 0, 0, "", "", "Steal_Health_Percent", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Steal_Mana_Percent = new GameAttributeF(346, 0, -1, 0, 0, "", "", "Steal_Mana_Percent", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Proc_Time = new GameAttributeF(357, 0, -1, 0, 0, "", "", "Last_Proc_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Rope_Overlay = new GameAttributeF(360, -1, -1, 0, 0, "", "", "Rope_Overlay", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI General_Cooldown = new GameAttributeI(361, -1, -1, 0, 0, "", "", "General_Cooldown", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Power_Cooldown = new GameAttributeI(362, -1, -1, 0, 0, "", "", "Power_Cooldown", GameAttributeEncoding.Int, 1, 0, 0, 32); - public static readonly GameAttributeI Power_Cooldown_Start = new GameAttributeI(363, 2147483647, -1, 0, 0, "", "", "Power_Cooldown_Start", GameAttributeEncoding.Int, 1, 0, 0, 32); - public static readonly GameAttributeI Proc_Cooldown = new GameAttributeI(364, 0, -1, 0, 0, "", "", "Proc_Cooldown", GameAttributeEncoding.Int, 1, 0, 0, 32); - public static readonly GameAttributeI Emote_Cooldown = new GameAttributeI(365, 0, -1, 0, 0, "", "", "Emote_Cooldown", GameAttributeEncoding.Int, 1, 0, 0, 32); - public static readonly GameAttributeI Next_Charge_Gained_time = new GameAttributeI(371, 0, -1, 0, 0, "", "", "Next_Charge_Gained_time", GameAttributeEncoding.Int, 136, 0, 0, 32); - public static readonly GameAttributeI Recharge_Start_Time = new GameAttributeI(372, 0, -1, 0, 0, "", "", "Recharge_Start_Time", GameAttributeEncoding.Int, 136, 0, 0, 32); - public static readonly GameAttributeF Act = new GameAttributeF(373, -1, -1, 0, 0, "", "", "Act", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeI Durability_Cur = new GameAttributeI(380, 0, -1, 0, 1, "", "", "Durability_Cur", GameAttributeEncoding.Int, 8, 0, 0, 32); - public static readonly GameAttributeI Durability_Max = new GameAttributeI(381, 0, -1, 0, 1, "", "", "Durability_Max", GameAttributeEncoding.Int, 8, 0, 0, 32); - public static readonly GameAttributeF Durability_Last_Damage = new GameAttributeF(382, 0, -1, 0, 0, "", "", "Durability_Last_Damage", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Ping = new GameAttributeF(387, -1, -1, 0, 0, "", "", "Ping", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Item_Bound_To_ACD = new GameAttributeF(394, -1, -1, 0, 0, "0", "", "Item_Bound_To_ACD", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Locked_To_ACD = new GameAttributeF(395, -1, -1, 0, 0, "0", "", "Item_Locked_To_ACD", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_LegendaryItem_Level_Override = new GameAttributeF(397, 0, -1, 0, 0, "0", "", "Item_LegendaryItem_Level_Override", GameAttributeEncoding.Float32, 8, 0, 0, 32); - public static readonly GameAttributeI ItemStackQuantityHi = new GameAttributeI(400, 0, -1, 4, 1, "", "", "ItemStackQuantityHi", GameAttributeEncoding.Int, 8, 0, 0, 32); - public static readonly GameAttributeI ItemStackQuantityLo = new GameAttributeI(401, 0, -1, 4, 1, "", "", "ItemStackQuantityLo", GameAttributeEncoding.Int, 8, 0, 0, 32); - public static readonly GameAttributeF IdentifyCost = new GameAttributeF(404, 0, -1, 0, 0, "", "", "IdentifyCost", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Seed = new GameAttributeI(405, 0, -1, 0, 0, "0", "", "Seed", GameAttributeEncoding.Int, 8, 0, 0, 32); - public static readonly GameAttributeF EnchantedAffixOld = new GameAttributeF(423, -1, -1, 0, 0, "0", "", "EnchantedAffixOld", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF EnchantedAffixNew = new GameAttributeF(424, -1, -1, 0, 0, "0", "", "EnchantedAffixNew", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF EnchantedAffixSeed = new GameAttributeF(425, 0, -1, 0, 0, "0", "", "EnchantedAffixSeed", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF EnchantedAffixCount = new GameAttributeF(426, 0, -1, 0, 0, "0", "", "EnchantedAffixCount", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI TransmogGBID = new GameAttributeI(427, -1, -1, 0, 0, "0", "", "TransmogGBID", GameAttributeEncoding.Float32, 8, 0, 0, 32); - public static readonly GameAttributeF TransmogGBIDTempOverride = new GameAttributeF(428, -1, -1, 0, 0, "0", "", "TransmogGBIDTempOverride", GameAttributeEncoding.Float32, 8, 0, 0, 32); - public static readonly GameAttributeF HighlySalvageable = new GameAttributeF(429, 0, -1, 0, 0, "0", "", "HighlySalvageable", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF ItemUnlockTimeHi = new GameAttributeF(430, 0, -1, 0, 0, "", "", "ItemUnlockTimeHi", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF ItemUnlockTimeLo = new GameAttributeF(431, 0, -1, 0, 0, "", "", "ItemUnlockTimeLo", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF CubeEnchantedGemRank = new GameAttributeF(432, 0, -1, 0, 0, "0", "", "CubeEnchantedGemRank", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF CubeEnchantedGemType = new GameAttributeF(433, 0, -1, 0, 0, "0", "", "CubeEnchantedGemType", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Cube_Enchanted_Strength_Item = new GameAttributeF(434, 0, -1, 0, 0, "", "", "Cube_Enchanted_Strength_Item", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Cube_Enchanted_Dexterity_Item = new GameAttributeF(435, 0, -1, 0, 0, "", "", "Cube_Enchanted_Dexterity_Item", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Cube_Enchanted_Intelligence_Item = new GameAttributeF(436, 0, -1, 0, 0, "", "", "Cube_Enchanted_Intelligence_Item", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Cube_Enchanted_Vitality_Item = new GameAttributeF(437, 0, -1, 0, 0, "", "", "Cube_Enchanted_Vitality_Item", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Alpha_For_Other_Players = new GameAttributeF(440, -1, -1, 0, 0, "", "", "Alpha_For_Other_Players", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF RActor_Fade_Group = new GameAttributeF(442, -1, -1, 0, 0, "", "", "RActor_Fade_Group", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Treasure_Class = new GameAttributeF(454, -1, -1, 0, 0, "", "", "Treasure_Class", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Door_Timer = new GameAttributeF(468, -1, -1, 0, 0, "", "", "Door_Timer", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Gizmo_Operator_ACDID = new GameAttributeI(470, -1, -1, 3, 1, "", "", "Gizmo_Operator_ACDID", GameAttributeEncoding.Int, 4, 0, 0, 32); - public static readonly GameAttributeF Triggering_Count = new GameAttributeF(471, 0, -1, 0, 0, "", "", "Triggering_Count", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Summoned_By_SNO = new GameAttributeF(484, -1, -1, 0, 0, "", "", "Summoned_By_SNO", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Pet_Proc_Scalar = new GameAttributeF(485, 1065353216, -1, 0, 0, "", "", "Pet_Proc_Scalar", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Callout_Cooldown = new GameAttributeF(493, -1, -1, 0, 0, "", "", "Callout_Cooldown", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Banter_Cooldown = new GameAttributeF(494, -1, -1, 0, 0, "", "", "Banter_Cooldown", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Conversation_Heard_Count = new GameAttributeF(495, 0, -1, 0, 0, "", "", "Conversation_Heard_Count", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Tick_Shop_Entered = new GameAttributeF(496, -1, -1, 0, 0, "", "", "Last_Tick_Shop_Entered", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Axe = new GameAttributeF(498, 0, -1, 0, 0, "", "", "Axe", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Axe2H = new GameAttributeF(499, 0, -1, 0, 0, "", "", "Axe2H", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF ThrowingAxe = new GameAttributeF(500, 0, -1, 0, 0, "", "", "ThrowingAxe", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF AxeAny = new GameAttributeF(501, 0, -1, 0, 0, "Pin(Axe + Axe2H + ThrowingAxe, 0, 1)", "", "AxeAny", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Bow = new GameAttributeF(502, 0, -1, 0, 0, "", "", "Bow", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Crossbow = new GameAttributeF(503, 0, -1, 0, 0, "", "", "Crossbow", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF BowAny = new GameAttributeF(504, 0, -1, 0, 0, "Pin(Bow + Crossbow, 0, 1)", "", "BowAny", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Club = new GameAttributeF(505, 0, -1, 0, 0, "", "", "Club", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Club2H = new GameAttributeF(506, 0, -1, 0, 0, "", "", "Club2H", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF ClubAny = new GameAttributeF(507, 0, -1, 0, 0, "Pin(Club + Club2H, 0, 1)", "", "ClubAny", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Dagger = new GameAttributeF(508, 0, -1, 0, 0, "", "", "Dagger", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Mace = new GameAttributeF(509, 0, -1, 0, 0, "", "", "Mace", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Mace2H = new GameAttributeF(510, 0, -1, 0, 0, "", "", "Mace2H", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF MaceAny = new GameAttributeF(511, 0, -1, 0, 0, "Pin(Mace + Mace2H, 0, 1)", "", "MaceAny", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Sword = new GameAttributeF(512, 0, -1, 0, 0, "", "", "Sword", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Sword2H = new GameAttributeF(513, 0, -1, 0, 0, "", "", "Sword2H", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF SwordAny = new GameAttributeF(514, 0, -1, 0, 0, "Pin(Sword + Sword2H, 0, 1)", "", "SwordAny", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Polearm = new GameAttributeF(515, 0, -1, 0, 0, "", "", "Polearm", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Spear = new GameAttributeF(516, 0, -1, 0, 0, "", "", "Spear", GameAttributeEncoding.Float32, 13, 0, 0, 32); - public static readonly GameAttributeF Wand = new GameAttributeF(517, 0, -1, 0, 0, "", "", "Wand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF ColdStaff = new GameAttributeF(518, 0, -1, 0, 0, "", "", "ColdStaff", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF FireStaff = new GameAttributeF(519, 0, -1, 0, 0, "", "", "FireStaff", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF LightningStaff = new GameAttributeF(520, 0, -1, 0, 0, "", "", "LightningStaff", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF PoisonStaff = new GameAttributeF(521, 0, -1, 0, 0, "", "", "PoisonStaff", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF StaffAny = new GameAttributeF(522, 0, -1, 0, 0, "Pin(ColdStaff + FireStaff + LightningStaff + PoisonStaff, 0, 1)", "", "StaffAny", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Weapon1H = new GameAttributeF(523, 0, -1, 0, 0, "Pin(Axe + Club + Dagger + Mace + Sword + Wand, 0, 1)", "", "Weapon1H", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Weapon2H = new GameAttributeF(524, 0, -1, 0, 0, "Pin(Axe2H + BowAny + Club2H + Mace2H + Sword2H + Polearm + Spear + StaffAny, 0, 1)", "", "Weapon2H", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF WeaponMelee = new GameAttributeF(525, 0, -1, 0, 0, "Pin(Axe + Axe2H + ClubAny + Dagger + MaceAny + SwordAny + Polearm + Spear + Wand + StaffAny, 0, 1)", "", "WeaponMelee", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF WeaponRanged = new GameAttributeF(526, 0, -1, 0, 0, "Pin(ThrowingAxe + BowAny, 0, 1)", "", "WeaponRanged", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Quiver = new GameAttributeF(527, 0, -1, 0, 0, "", "", "Quiver", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Reincarnation_Buff = new GameAttributeF(528, -1, -1, 0, 0, "", "", "Reincarnation_Buff", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Dead_Body_AnimTag = new GameAttributeF(529, -1, -1, 0, 0, "", "", "Dead_Body_AnimTag", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Spawned_by_ACDID = new GameAttributeI(530, -1, -1, 0, 0, "", "", "Spawned_by_ACDID", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Summoned_By_ACDID = new GameAttributeI(531, -1, -1, 0, 0, "", "", "Summoned_By_ACDID", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Summoner_ID = new GameAttributeI(532, -1, -1, 0, 0, "", "", "Summoner_ID", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Banner_ACDID = new GameAttributeI(533, -1, -1, 0, 0, "", "", "Banner_ACDID", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Item_MainHand = new GameAttributeF(538, 0, -1, 0, 0, "(Held_In_OffHand ? 0 : Attacks_Per_Second_Item_Subtotal )", "", "Attacks_Per_Second_Item_MainHand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Item_OffHand = new GameAttributeF(539, 0, -1, 0, 0, "(Held_In_OffHand ? Attacks_Per_Second_Item_Subtotal : 0)", "", "Attacks_Per_Second_Item_OffHand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Item_Total_MainHand = new GameAttributeF(540, 0, -1, 0, 0, "Attacks_Per_Second_Item_MainHand + Attacks_Per_Second_Item_Bonus", "", "Attacks_Per_Second_Item_Total_MainHand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Item_Total_OffHand = new GameAttributeF(541, 0, -1, 0, 0, "Attacks_Per_Second_Item_OffHand + Attacks_Per_Second_Item_Bonus", "", "Attacks_Per_Second_Item_Total_OffHand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Min_Total_MainHand = new GameAttributeF(542, 0, -1, 0, 0, "(Held_In_OffHand#NONE ? 0 : Damage_Weapon_Min_Total )", "", "Damage_Weapon_Min_Total_MainHand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Min_Total_OffHand = new GameAttributeF(543, 0, -1, 0, 0, "(Held_In_OffHand#NONE ? Damage_Weapon_Min_Total : 0)", "", "Damage_Weapon_Min_Total_OffHand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Delta_Total_MainHand = new GameAttributeF(544, 0, -1, 0, 0, "(Held_In_OffHand#NONE ? 0 : Damage_Weapon_Delta_Total )", "", "Damage_Weapon_Delta_Total_MainHand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Delta_Total_OffHand = new GameAttributeF(545, 0, -1, 0, 0, "(Held_In_OffHand#NONE ? Damage_Weapon_Delta_Total : 0)", "", "Damage_Weapon_Delta_Total_OffHand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Attacks_Per_Second_Item_CurrentHand = new GameAttributeF(546, 0, -1, 0, 0, "(DualWield_Hand ? Attacks_Per_Second_Item_OffHand : Attacks_Per_Second_Item_MainHand)", "", "Attacks_Per_Second_Item_CurrentHand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Min_Total_CurrentHand = new GameAttributeF(547, 0, -1, 0, 0, "(DualWield_Hand#NONE ? Damage_Weapon_Min_Total_OffHand : Damage_Weapon_Min_Total_MainHand)", "", "Damage_Weapon_Min_Total_CurrentHand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Weapon_Delta_Total_CurrentHand = new GameAttributeF(548, 0, -1, 0, 0, "(DualWield_Hand#NONE ? Damage_Weapon_Delta_Total_OffHand : Damage_Weapon_Delta_Total_MainHand)", "", "Damage_Weapon_Delta_Total_CurrentHand", GameAttributeEncoding.Float32, 136, 0, 0, 32); - public static readonly GameAttributeF Has_Special_Death_AnimTag = new GameAttributeF(549, -1, -1, 0, 0, "", "", "Has_Special_Death_AnimTag", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Death_Type_Override = new GameAttributeF(550, -1, -1, 0, 0, "", "", "Death_Type_Override", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Tick_Potion_Used = new GameAttributeF(554, -1, -1, 0, 0, "", "", "Last_Tick_Potion_Used", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Damage_ACD = new GameAttributeF(562, -1, -1, 0, 0, "", "", "Last_Damage_ACD", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Attached_To_ACD = new GameAttributeF(563, -1, -1, 0, 0, "", "", "Attached_To_ACD", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Attachment_ACD = new GameAttributeF(564, -1, -1, 0, 0, "", "", "Attachment_ACD", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Normal_Attack_Replacement_Power_SNO = new GameAttributeF(565, -1, -1, 0, 0, "", "", "Normal_Attack_Replacement_Power_SNO", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Expensive_Proc_Count = new GameAttributeF(568, 0, -1, 0, 0, "", "", "Expensive_Proc_Count", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Post_260A_Legendary_Gem_Cap = new GameAttributeF(569, 0, -1, 0, 0, "", "", "Post_260A_Legendary_Gem_Cap", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Champion_Clone_Next_Tick = new GameAttributeF(571, 0, -1, 0, 0, "", "", "Champion_Clone_Next_Tick", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Champion_Ghostly_Next_Tick = new GameAttributeF(576, 0, -1, 0, 0, "", "", "Champion_Ghostly_Next_Tick", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Projectile_Reflect_Forced_Target = new GameAttributeF(586, -1, -1, 0, 0, "", "", "Projectile_Reflect_Forced_Target", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Projectile_Reflect_Damage_Scalar = new GameAttributeF(587, 1065353216, -1, 0, 0, "", "", "Projectile_Reflect_Damage_Scalar", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Projectile_Reflect_Damage_Cap_Remaining = new GameAttributeF(589, 0, -1, 0, 0, "", "", "Projectile_Reflect_Damage_Cap_Remaining", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick0 = new GameAttributeI(594, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick0", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick1 = new GameAttributeI(595, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick1", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick2 = new GameAttributeI(596, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick2", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick3 = new GameAttributeI(597, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick3", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick4 = new GameAttributeI(598, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick4", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick5 = new GameAttributeI(599, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick5", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick6 = new GameAttributeI(600, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick6", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick7 = new GameAttributeI(601, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick7", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick8 = new GameAttributeI(602, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick8", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick9 = new GameAttributeI(603, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick9", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick10 = new GameAttributeI(604, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick10", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick11 = new GameAttributeI(605, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick11", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick12 = new GameAttributeI(606, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick12", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick13 = new GameAttributeI(607, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick13", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick14 = new GameAttributeI(608, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick14", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick15 = new GameAttributeI(609, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick15", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick16 = new GameAttributeI(610, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick16", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick17 = new GameAttributeI(611, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick17", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick18 = new GameAttributeI(612, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick18", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick19 = new GameAttributeI(613, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick19", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick20 = new GameAttributeI(614, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick20", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick21 = new GameAttributeI(615, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick21", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick22 = new GameAttributeI(616, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick22", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick23 = new GameAttributeI(617, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick23", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick24 = new GameAttributeI(618, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick24", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick25 = new GameAttributeI(619, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick25", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick26 = new GameAttributeI(620, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick26", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick27 = new GameAttributeI(621, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick27", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick28 = new GameAttributeI(622, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick28", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick29 = new GameAttributeI(623, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick29", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick30 = new GameAttributeI(624, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick30", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_Start_Tick31 = new GameAttributeI(625, 0, -1, 0, 0, "", "", "Buff_Icon_Start_Tick31", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick0 = new GameAttributeI(626, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick0", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick1 = new GameAttributeI(627, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick1", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick2 = new GameAttributeI(628, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick2", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick3 = new GameAttributeI(629, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick3", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick4 = new GameAttributeI(630, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick4", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick5 = new GameAttributeI(631, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick5", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick6 = new GameAttributeI(632, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick6", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick7 = new GameAttributeI(633, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick7", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick8 = new GameAttributeI(634, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick8", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick9 = new GameAttributeI(635, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick9", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick10 = new GameAttributeI(636, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick10", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick11 = new GameAttributeI(637, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick11", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick12 = new GameAttributeI(638, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick12", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick13 = new GameAttributeI(639, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick13", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick14 = new GameAttributeI(640, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick14", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick15 = new GameAttributeI(641, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick15", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick16 = new GameAttributeI(642, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick16", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick17 = new GameAttributeI(643, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick17", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick18 = new GameAttributeI(644, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick18", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick19 = new GameAttributeI(645, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick19", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick20 = new GameAttributeI(646, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick20", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick21 = new GameAttributeI(647, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick21", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick22 = new GameAttributeI(648, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick22", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick23 = new GameAttributeI(649, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick23", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick24 = new GameAttributeI(650, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick24", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick25 = new GameAttributeI(651, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick25", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick26 = new GameAttributeI(652, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick26", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick27 = new GameAttributeI(653, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick27", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick28 = new GameAttributeI(654, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick28", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick29 = new GameAttributeI(655, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick29", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick30 = new GameAttributeI(656, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick30", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Buff_Icon_End_Tick31 = new GameAttributeI(657, 0, -1, 0, 0, "", "", "Buff_Icon_End_Tick31", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF Ambient_Damage_Effect_Last_Time = new GameAttributeF(659, 0, -1, 0, 0, "", "", "Ambient_Damage_Effect_Last_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Scripted_Fade_Time = new GameAttributeF(663, 0, -1, 0, 0, "", "", "Scripted_Fade_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Shatter_Chance = new GameAttributeF(670, 0, -1, 0, 0, "", "", "Shatter_Chance", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Summon_Expiration_Tick = new GameAttributeF(672, 0, -1, 0, 0, "", "", "Summon_Expiration_Tick", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Summon_Count = new GameAttributeF(673, 0, -1, 0, 0, "", "", "Summon_Count", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Wizard_Slowtime_Proxy_ACD = new GameAttributeF(678, -1, -1, 0, 0, "", "", "Wizard_Slowtime_Proxy_ACD", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Resurrection_Power = new GameAttributeF(680, -1, -1, 0, 0, "", "", "Resurrection_Power", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Time_Sold = new GameAttributeF(687, 0, -1, 0, 0, "", "", "Item_Time_Sold", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Forced_Hireling_Power = new GameAttributeF(688, -1, -1, 0, 0, "", "", "Forced_Hireling_Power", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF RootTargetACD = new GameAttributeF(690, -1, -1, 0, 0, "", "", "RootTargetACD", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF RootTotalTicks = new GameAttributeF(693, 0, -1, 0, 0, "", "", "RootTotalTicks", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI SkillKit = new GameAttributeI(710, -1, -1, 0, 0, "", "", "SkillKit", GameAttributeEncoding.Int, 136, 0, 0, 32); - //public static readonly GameAttributeI SkillKit = new GameAttributeI(709, -1, -1, 0, 0, "", "", "SkillKit", GameAttributeEncoding.Int, 136, 0, 0, 32); - public static readonly GameAttributeF Damage_Shield_Amount = new GameAttributeF(714, 0, -1, 0, 0, "", "", "Damage_Shield_Amount", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Guard_Object_ACDID = new GameAttributeF(715, -1, -1, 0, 0, "", "", "Guard_Object_ACDID", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Follow_Target_ACDID = new GameAttributeF(716, -1, -1, 0, 0, "", "", "Follow_Target_ACDID", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Forced_Enemy_ACDID = new GameAttributeF(718, -1, -1, 0, 0, "", "", "Forced_Enemy_ACDID", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF NPC_Talk_Target_ANN = new GameAttributeF(719, -1, -1, 0, 0, "", "", "NPC_Talk_Target_ANN", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF NPC_Conv_Target_ANN = new GameAttributeF(720, -1, -1, 0, 0, "", "", "NPC_Conv_Target_ANN", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Script_Target_ACDID = new GameAttributeF(721, -1, -1, 0, 0, "", "", "Script_Target_ACDID", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Look_Target_Server_ANN = new GameAttributeF(722, -1, -1, 0, 0, "", "", "Look_Target_Server_ANN", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF ItemBuffIcon = new GameAttributeF(728, 0, -1, 0, 0, "0", "", "ItemBuffIcon", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Gizmo_Actor_SNO_To_Spawn = new GameAttributeF(730, -1, -1, 0, 0, "", "", "Gizmo_Actor_SNO_To_Spawn", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Death_Replacement_Power_SNO = new GameAttributeF(732, -1, -1, 0, 0, "", "", "Death_Replacement_Power_SNO", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Headstone_Player_ANN = new GameAttributeF(737, -1, -1, 0, 0, "", "", "Headstone_Player_ANN", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Resource_Cost_Reduction_Percent_Total = new GameAttributeF(739, 0, -1, 0, 0, "", "", "Resource_Cost_Reduction_Percent_Total", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Fury_Effect_Level = new GameAttributeF(746, 0, -1, 0, 0, "", "", "Fury_Effect_Level", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Free_Cast = new GameAttributeF(749, 0, -1, 0, 0, "", "", "Free_Cast", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Frailty_Next_Application_Tick = new GameAttributeF(754, 0, -1, 0, 0, "", "", "Frailty_Next_Application_Tick", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF World_Seed = new GameAttributeF(758, 0, -1, 0, 0, "", "", "World_Seed", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Combo_Time_Last_Move = new GameAttributeF(802, 0, -1, 0, 0, "", "", "Combo_Time_Last_Move", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Death_Replacement_Effect_Group_SNO = new GameAttributeF(804, -1, -1, 0, 0, "", "", "Death_Replacement_Effect_Group_SNO", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Checkpoint_Resurrection_Allowed_Game_Time = new GameAttributeI(805, 0, -1, 0, 0, "", "", "Checkpoint_Resurrection_Allowed_Game_Time", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Checkpoint_Resurrection_Forced_Game_Time = new GameAttributeI(806, 0, -1, 0, 0, "", "", "Checkpoint_Resurrection_Forced_Game_Time", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Corpse_Resurrection_Allowed_Game_Time = new GameAttributeI(807, 0, -1, 0, 0, "", "", "Corpse_Resurrection_Allowed_Game_Time", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF Controlling_TimedEvent_SNO = new GameAttributeF(810, -1, -1, 0, 0, "", "", "Controlling_TimedEvent_SNO", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Spawner_Concurrent_Count_ID = new GameAttributeF(855, -1, -1, 0, 0, "", "", "Spawner_Concurrent_Count_ID", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Skill_Override = new GameAttributeI(857, -1, -1, 0, 0, "", "", "Skill_Override", GameAttributeEncoding.Int, 136, 0, 0, 32); - public static readonly GameAttributeF Walk_Passability_Power_SNO = new GameAttributeF(1057, -1, -1, 0, 0, "", "", "Walk_Passability_Power_SNO", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Passability_Power_SNO = new GameAttributeF(1058, -1, -1, 0, 0, "", "", "Passability_Power_SNO", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Flippy_ID = new GameAttributeF(1059, -1, -1, 0, 0, "", "", "Flippy_ID", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Summoning_Machine_Next_Spawn_Ticks = new GameAttributeF(1062, 0, -1, 0, 0, "", "", "Summoning_Machine_Next_Spawn_Ticks", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Set_Item_Count = new GameAttributeI(1066, 0, -1, 0, 0, "", "", "Set_Item_Count", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Set_Bonus_Count = new GameAttributeI(1067, 0, -1, 0, 0, "", "", "Set_Bonus_Count", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF Last_ACD_Attacked_By = new GameAttributeF(1075, -1, -1, 0, 0, "", "", "Last_ACD_Attacked_By", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Looping_Animation_Start_Time = new GameAttributeI(1080, 0, -1, 1, 1, "", "", "Looping_Animation_Start_Time", GameAttributeEncoding.Int, 222, 0, 0, 32); - public static readonly GameAttributeI Looping_Animation_End_Time = new GameAttributeI(1081, 0, -1, 1, 1, "", "", "Looping_Animation_End_Time", GameAttributeEncoding.Int, 222, 0, 0, 32); - public static readonly GameAttributeF Heal_Effect_Last_Played_Tick = new GameAttributeF(1083, -1, -1, 0, 0, "", "", "Heal_Effect_Last_Played_Tick", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Resource_Effect_Last_Played_tick = new GameAttributeF(1084, -1, -1, 0, 0, "", "", "Resource_Effect_Last_Played_tick", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Thorns_Effect_Last_Played_tick = new GameAttributeF(1085, -1, -1, 0, 0, "", "", "Thorns_Effect_Last_Played_tick", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Kills = new GameAttributeF(1086, 0, -1, 0, 0, "", "", "PVP_Kills", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Deaths = new GameAttributeF(1087, 0, -1, 0, 0, "", "", "PVP_Deaths", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Assists = new GameAttributeF(1088, 0, -1, 0, 0, "", "", "PVP_Assists", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Progression_Points_Gained = new GameAttributeF(1089, 0, -1, 0, 0, "", "", "PVP_Progression_Points_Gained", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Current_Kill_Streak = new GameAttributeF(1090, 0, -1, 0, 0, "", "", "PVP_Current_Kill_Streak", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Current_Death_Streak = new GameAttributeF(1091, 0, -1, 0, 0, "", "", "PVP_Current_Death_Streak", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Longest_Kill_Streak = new GameAttributeF(1092, 0, -1, 0, 0, "", "", "PVP_Longest_Kill_Streak", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Longest_Death_Streak = new GameAttributeF(1093, 0, -1, 0, 0, "", "", "PVP_Longest_Death_Streak", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF MinimapIconOverride = new GameAttributeF(1104, -1, -1, 0, 0, "", "", "MinimapIconOverride", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Blocked_ACD = new GameAttributeF(1106, -1, -1, 0, 0, "", "", "Last_Blocked_ACD", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Blocked_Time = new GameAttributeF(1107, 0, -1, 0, 0, "", "", "Last_Blocked_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Taunt_Target_ACD = new GameAttributeF(1113, -1, -1, 0, 0, "", "", "Taunt_Target_ACD", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Charm_Source_ACD = new GameAttributeF(1114, -1, -1, 0, 0, "", "", "Charm_Source_ACD", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Projectile_Effect_SNO = new GameAttributeF(1116, -1, -1, 0, 0, "", "", "Projectile_Effect_SNO", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Percent_Reduction_From_Ranged = new GameAttributeF(1128, 0, -1, 0, 0, "", "", "Damage_Percent_Reduction_From_Ranged", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Percent_Reduction_From_Melee = new GameAttributeF(1129, 0, -1, 0, 0, "", "", "Damage_Percent_Reduction_From_Melee", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Percent_Reduction_From_Elites = new GameAttributeF(1131, 0, -1, 0, 0, "", "", "Damage_Percent_Reduction_From_Elites", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Percent_Bonus_Vs_Elites = new GameAttributeF(1134, 0, -1, 0, 0, "", "", "Damage_Percent_Bonus_Vs_Elites", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Manipulation_Timeout = new GameAttributeF(1135, 0, -1, 0, 0, "", "", "Item_Manipulation_Timeout", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Picked_Up_Time = new GameAttributeF(1136, 0, -1, 0, 0, "", "", "Picked_Up_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_ACD_Killed_Time = new GameAttributeF(1138, 0, -1, 0, 0, "", "", "Last_ACD_Killed_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Damage_Percent_Bonus = new GameAttributeF(1196, 0, -1, 0, 0, "", "", "Power_Damage_Percent_Bonus", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Strength_Item = new GameAttributeF(1208, 0, -1, 0, 0, "", "", "Strength_Item", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Dexterity_Item = new GameAttributeF(1209, 0, -1, 0, 0, "", "", "Dexterity_Item", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Intelligence_Item = new GameAttributeF(1210, 0, -1, 0, 0, "", "", "Intelligence_Item", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Vitality_Item = new GameAttributeF(1211, 0, -1, 0, 0, "", "", "Vitality_Item", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Item_Level_Requirement_Reduction = new GameAttributeI(1212, 0, -1, 0, 0, "", "", "Item_Level_Requirement_Reduction", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Item_Level_Requirement_Override = new GameAttributeI(1213, 0, -1, 0, 0, "", "", "Item_Level_Requirement_Override", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF Core_Attributes_From_Item_Bonus_Multiplier = new GameAttributeF(1217, 1065353216, -1, 0, 0, "", "", "Core_Attributes_From_Item_Bonus_Multiplier", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Special_Inventory_Has_Sold = new GameAttributeF(1220, 0, -1, 0, 0, "", "", "Special_Inventory_Has_Sold", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Inventory_Reroll_Time = new GameAttributeF(1222, 0, -1, 0, 0, "", "", "Inventory_Reroll_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Channel_Lockout_Time = new GameAttributeF(1225, 0, -1, 0, 0, "", "", "Power_Channel_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_0_Lockout_Time = new GameAttributeF(1226, 0, -1, 0, 0, "", "", "Power_Buff_0_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_1_Lockout_Time = new GameAttributeF(1227, 0, -1, 0, 0, "", "", "Power_Buff_1_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_2_Lockout_Time = new GameAttributeF(1228, 0, -1, 0, 0, "", "", "Power_Buff_2_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_3_Lockout_Time = new GameAttributeF(1229, 0, -1, 0, 0, "", "", "Power_Buff_3_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_4_Lockout_Time = new GameAttributeF(1230, 0, -1, 0, 0, "", "", "Power_Buff_4_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_5_Lockout_Time = new GameAttributeF(1231, 0, -1, 0, 0, "", "", "Power_Buff_5_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_6_Lockout_Time = new GameAttributeF(1232, 0, -1, 0, 0, "", "", "Power_Buff_6_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_7_Lockout_Time = new GameAttributeF(1233, 0, -1, 0, 0, "", "", "Power_Buff_7_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_8_Lockout_Time = new GameAttributeF(1234, 0, -1, 0, 0, "", "", "Power_Buff_8_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_9_Lockout_Time = new GameAttributeF(1235, 0, -1, 0, 0, "", "", "Power_Buff_9_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_10_Lockout_Time = new GameAttributeF(1236, 0, -1, 0, 0, "", "", "Power_Buff_10_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_11_Lockout_Time = new GameAttributeF(1237, 0, -1, 0, 0, "", "", "Power_Buff_11_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_12_Lockout_Time = new GameAttributeF(1238, 0, -1, 0, 0, "", "", "Power_Buff_12_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_13_Lockout_Time = new GameAttributeF(1239, 0, -1, 0, 0, "", "", "Power_Buff_13_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_14_Lockout_Time = new GameAttributeF(1240, 0, -1, 0, 0, "", "", "Power_Buff_14_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_15_Lockout_Time = new GameAttributeF(1241, 0, -1, 0, 0, "", "", "Power_Buff_15_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_16_Lockout_Time = new GameAttributeF(1242, 0, -1, 0, 0, "", "", "Power_Buff_16_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_17_Lockout_Time = new GameAttributeF(1243, 0, -1, 0, 0, "", "", "Power_Buff_17_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_18_Lockout_Time = new GameAttributeF(1244, 0, -1, 0, 0, "", "", "Power_Buff_18_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_19_Lockout_Time = new GameAttributeF(1245, 0, -1, 0, 0, "", "", "Power_Buff_19_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_20_Lockout_Time = new GameAttributeF(1246, 0, -1, 0, 0, "", "", "Power_Buff_20_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_21_Lockout_Time = new GameAttributeF(1247, 0, -1, 0, 0, "", "", "Power_Buff_21_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_22_Lockout_Time = new GameAttributeF(1248, 0, -1, 0, 0, "", "", "Power_Buff_22_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_23_Lockout_Time = new GameAttributeF(1249, 0, -1, 0, 0, "", "", "Power_Buff_23_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_24_Lockout_Time = new GameAttributeF(1250, 0, -1, 0, 0, "", "", "Power_Buff_24_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_25_Lockout_Time = new GameAttributeF(1251, 0, -1, 0, 0, "", "", "Power_Buff_25_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_26_Lockout_Time = new GameAttributeF(1252, 0, -1, 0, 0, "", "", "Power_Buff_26_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_27_Lockout_Time = new GameAttributeF(1253, 0, -1, 0, 0, "", "", "Power_Buff_27_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_28_Lockout_Time = new GameAttributeF(1254, 0, -1, 0, 0, "", "", "Power_Buff_28_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_29_Lockout_Time = new GameAttributeF(1255, 0, -1, 0, 0, "", "", "Power_Buff_29_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_30_Lockout_Time = new GameAttributeF(1256, 0, -1, 0, 0, "", "", "Power_Buff_30_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Buff_31_Lockout_Time = new GameAttributeF(1257, 0, -1, 0, 0, "", "", "Power_Buff_31_Lockout_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Known_By_Owner = new GameAttributeI(1258, -1, -1, 0, 0, "", "", "Known_By_Owner", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF Projectile_Detonate_Time = new GameAttributeF(1261, 0, -1, 0, 0, "", "", "Projectile_Detonate_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PageOfFate_Item = new GameAttributeF(1263, -1, -1, 0, 0, "", "", "PageOfFate_Item", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Accolade_0 = new GameAttributeF(1264, -1, -1, 0, 0, "", "", "Accolade_0", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Accolade_1 = new GameAttributeF(1265, -1, -1, 0, 0, "", "", "Accolade_1", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Accolade_2 = new GameAttributeF(1266, -1, -1, 0, 0, "", "", "Accolade_2", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Accolade_3 = new GameAttributeF(1267, -1, -1, 0, 0, "", "", "Accolade_3", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Accolade_4 = new GameAttributeF(1268, -1, -1, 0, 0, "", "", "Accolade_4", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Accolade_0_Value = new GameAttributeF(1269, 0, -1, 0, 0, "", "", "Accolade_0_Value", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Accolade_1_Value = new GameAttributeF(1270, 0, -1, 0, 0, "", "", "Accolade_1_Value", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Accolade_2_Value = new GameAttributeF(1271, 0, -1, 0, 0, "", "", "Accolade_2_Value", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Accolade_3_Value = new GameAttributeF(1272, 0, -1, 0, 0, "", "", "Accolade_3_Value", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Accolade_4_Value = new GameAttributeF(1273, 0, -1, 0, 0, "", "", "Accolade_4_Value", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Tokens = new GameAttributeF(1275, 0, -1, 0, 0, "", "", "PVP_Tokens", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI PVP_Experience_Next_Lo = new GameAttributeI(1276, 0, -1, 0, 0, "", "", "PVP_Experience_Next_Lo", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI PVP_Experience_Next_Hi = new GameAttributeI(1277, 0, -1, 0, 0, "", "", "PVP_Experience_Next_Hi", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Gold_Gained_This_Game = new GameAttributeF(1278, 0, -1, 0, 0, "", "", "PVP_Gold_Gained_This_Game", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_PVP_Experience_Gained_This_Game_Lo = new GameAttributeF(1279, 0, -1, 0, 0, "", "", "PVP_PVP_Experience_Gained_This_Game_Lo", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_PVP_Experience_Gained_This_Game_Hi = new GameAttributeF(1280, 0, -1, 0, 0, "", "", "PVP_PVP_Experience_Gained_This_Game_Hi", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Normal_Experience_Gained_This_Game_Lo = new GameAttributeF(1281, 0, -1, 0, 0, "", "", "PVP_Normal_Experience_Gained_This_Game_Lo", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Normal_Experience_Gained_This_Game_Hi = new GameAttributeF(1282, 0, -1, 0, 0, "", "", "PVP_Normal_Experience_Gained_This_Game_Hi", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_Tokens_Gained_This_Game = new GameAttributeF(1283, 0, -1, 0, 0, "", "", "PVP_Tokens_Gained_This_Game", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Effect_Owner_ANN = new GameAttributeI(1287, -1, -1, 0, 0, "", "", "Effect_Owner_ANN", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF Engaged_Rare_Time = new GameAttributeF(1289, 0, -1, 0, 0, "", "", "Engaged_Rare_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Engaged_Goblin_Time = new GameAttributeF(1290, 0, -1, 0, 0, "", "", "Engaged_Goblin_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF On_Death_Accolade_0 = new GameAttributeF(1291, -1, -1, 0, 0, "", "", "On_Death_Accolade_0", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF On_Death_Accolade_0_Value = new GameAttributeF(1292, 0, -1, 0, 0, "", "", "On_Death_Accolade_0_Value", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Power_Passive = new GameAttributeF(1293, 0, -1, 0, 0, "", "", "Item_Power_Passive", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PVP_TeamDeathmatch_Games_Played = new GameAttributeF(1294, 0, -1, 0, 0, "", "", "PVP_TeamDeathmatch_Games_Played", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Health_Drop_Interval = new GameAttributeF(1295, -1, -1, 0, 0, "", "", "Last_Health_Drop_Interval", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Continuous_Knockback_Power_ID = new GameAttributeF(1298, -1, -1, 0, 0, "", "", "Last_Continuous_Knockback_Power_ID", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Targeted_Legendary_Chance = new GameAttributeF(1303, 0, -1, 0, 0, "", "", "Targeted_Legendary_Chance", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Actor_Forwards_Buffs = new GameAttributeF(1310, -1, -1, 0, 0, "", "", "Actor_Forwards_Buffs", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Marked_As_Junk = new GameAttributeF(1311, 0, -1, 0, 0, "", "", "Item_Marked_As_Junk", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Paragon_Bonus = new GameAttributeI(1314, 0, -1, 0, 0, "", "", "Paragon_Bonus", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Paragon_Bonus_Points_Available = new GameAttributeI(1315, 0, -1, 0, 0, "", "", "Paragon_Bonus_Points_Available", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF Dungeon_Finder_Progress_Percent = new GameAttributeF(1316, 0, -1, 0, 0, "", "", "Dungeon_Finder_Progress_Percent", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Trade_Player_High = new GameAttributeF(1317, 0, -1, 0, 0, "", "", "Item_Trade_Player_High", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Trade_Player_Low = new GameAttributeF(1318, 0, -1, 0, 0, "", "", "Item_Trade_Player_Low", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Trade_End_Time = new GameAttributeF(1319, 0, -1, 0, 0, "", "", "Item_Trade_End_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Trade_Timer_ID = new GameAttributeF(1320, -1, -1, 0, 0, "", "", "Item_Trade_Timer_ID", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Season = new GameAttributeF(1322, 0, -1, 0, 0, "", "", "Season", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI DamageDoneTotalTrackedHi = new GameAttributeI(1323, 0, -1, 0, 0, "", "", "DamageDoneTotalTrackedHi", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI DamageDoneTotalTrackedLo = new GameAttributeI(1324, 0, -1, 0, 0, "", "", "DamageDoneTotalTrackedLo", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI DamageDoneTrackingStartTick = new GameAttributeI(1325, 0, -1, 0, 0, "", "", "DamageDoneTrackingStartTick", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF PowerPersistsAcrossGames = new GameAttributeF(1326, 0, -1, 0, 0, "", "", "PowerPersistsAcrossGames", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Targeted_Rare_Chance = new GameAttributeF(1334, 0, -1, 0, 0, "", "", "Targeted_Rare_Chance", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Dynamic_Entrance_GUID = new GameAttributeF(1336, 0, -1, 0, 0, "", "", "Dynamic_Entrance_GUID", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Bonus_Chance_To_Be_Crit_Hit = new GameAttributeF(1337, 0, -1, 0, 0, "", "", "Bonus_Chance_To_Be_Crit_Hit", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Bonus_Chance_To_Be_Crit_Hit_By_Actor = new GameAttributeF(1338, 0, -1, 0, 0, "", "", "Bonus_Chance_To_Be_Crit_Hit_By_Actor", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Bonus_Chance_To_Receive_Crushing_Blown = new GameAttributeF(1339, 0, -1, 0, 0, "", "", "Bonus_Chance_To_Receive_Crushing_Blown", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Store_Player_High = new GameAttributeF(1342, 0, -1, 0, 0, "", "", "Item_Store_Player_High", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Store_Player_Low = new GameAttributeF(1343, 0, -1, 0, 0, "", "", "Item_Store_Player_Low", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Primary_Resource_Cost_Override = new GameAttributeF(1344, 2139095039, -1, 0, 0, "", "", "Power_Primary_Resource_Cost_Override", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Secondary_Resource_Cost_Override = new GameAttributeF(1345, 2139095039, -1, 0, 0, "", "", "Power_Secondary_Resource_Cost_Override", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Channel_Cost_Override = new GameAttributeF(1346, 2139095039, -1, 0, 0, "", "", "Power_Channel_Cost_Override", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Elemental_Effect_Amplitude_Bonus = new GameAttributeF(1352, 0, -1, 0, 0, "", "", "Elemental_Effect_Amplitude_Bonus", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Elemental_Effect_Duration_Bonus = new GameAttributeF(1353, 0, -1, 0, 0, "", "", "Elemental_Effect_Duration_Bonus", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Elemental_Effect_Proc_Chance_Bonus = new GameAttributeF(1354, 0, -1, 0, 0, "", "", "Elemental_Effect_Proc_Chance_Bonus", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Splash_Damage_Effect_Percent = new GameAttributeF(1355, 0, -1, 0, 0, "", "", "Splash_Damage_Effect_Percent", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Crushing_Blow_Proc_Chance = new GameAttributeF(1356, 0, -1, 0, 0, "", "", "Crushing_Blow_Proc_Chance", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Negative_Health_Globe_Spawn_Chance = new GameAttributeF(1361, 0, -1, 0, 0, "", "", "Negative_Health_Globe_Spawn_Chance", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Override_Attached_Anim = new GameAttributeF(1362, -1, -1, 0, 0, "", "", "Override_Attached_Anim", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Legendary_Item_Base_Item = new GameAttributeF(1364, -1, -1, 0, 0, "0", "", "Item_Legendary_Item_Base_Item", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Targeted_Magic_Chance = new GameAttributeF(1365, 0, -1, 0, 0, "", "", "Targeted_Magic_Chance", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Boost_TC_NextTime = new GameAttributeF(1369, 0, -1, 0, 0, "", "", "Boost_TC_NextTime", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Potion_Bonus_Armor_Percent = new GameAttributeF(1370, 0, -1, 0, 0, "", "", "Potion_Bonus_Armor_Percent", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Potion_Bonus_Resist_All = new GameAttributeF(1371, 0, -1, 0, 0, "", "", "Potion_Bonus_Resist_All", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Potion_Bonus_Hitpoints_Granted = new GameAttributeF(1372, 0, -1, 0, 0, "", "", "Potion_Bonus_Hitpoints_Granted", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Potion_Bonus_Buff_Duration = new GameAttributeF(1373, 0, -1, 0, 0, "", "", "Potion_Bonus_Buff_Duration", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Potion_Bonus_Life_On_Hit = new GameAttributeF(1374, 0, -1, 0, 0, "", "", "Potion_Bonus_Life_On_Hit", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Potion_Bonus_Life_On_Kill = new GameAttributeF(1375, 0, -1, 0, 0, "", "", "Potion_Bonus_Life_On_Kill", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Special_Item_Time_High = new GameAttributeF(1376, 0, -1, 0, 0, "", "", "Last_Special_Item_Time_High", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Special_Item_Time_Low = new GameAttributeF(1377, 0, -1, 0, 0, "", "", "Last_Special_Item_Time_Low", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Rest_Bonus_Pool = new GameAttributeF(1378, 0, -1, 0, 0, "", "", "Item_Rest_Bonus_Pool", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Unlucky_Bonus_Secs = new GameAttributeF(1379, 0, -1, 0, 0, "", "", "Item_Unlucky_Bonus_Secs", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Unlucky_Bonus_Allow = new GameAttributeF(1380, 0, -1, 0, 0, "", "", "Item_Unlucky_Bonus_Allow", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Avenger_Buildup_Secs = new GameAttributeF(1381, 0, -1, 0, 0, "", "", "Avenger_Buildup_Secs", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF TornadoStraighten = new GameAttributeF(1384, 0, -1, 0, 0, "", "", "TornadoStraighten", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Bonus_From_Nephalem_Glory = new GameAttributeF(1386, 0, -1, 0, 0, "", "", "Damage_Bonus_From_Nephalem_Glory", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Player_Recipient = new GameAttributeF(1387, -1, -1, 0, 0, "-1", "", "Item_Player_Recipient", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Assigned_Hero_High = new GameAttributeF(1389, 0, -1, 0, 0, "", "", "Item_Assigned_Hero_High", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Item_Assigned_Hero_Low = new GameAttributeF(1390, 0, -1, 0, 0, "", "", "Item_Assigned_Hero_Low", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Pierce_Charge = new GameAttributeF(1391, 0, -1, 0, 0, "", "", "Pierce_Charge", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Upscaled_Level = new GameAttributeF(1392, 0, -1, 0, 0, "", "", "Upscaled_Level", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_SidekickMultiplier = new GameAttributeF(1394, 0, -1, 0, 0, "", "", "Damage_SidekickMultiplier", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Thorns_AOE_Radius_Next_Time = new GameAttributeF(1395, 0, -1, 0, 0, "", "", "Thorns_AOE_Radius_Next_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Tiered_Loot_Run_Key_Level = new GameAttributeF(1398, -1, -1, 0, 0, "", "", "Tiered_Loot_Run_Key_Level", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF In_Tiered_Loot_Run_Level = new GameAttributeF(1399, -1, -1, 0, 0, "", "", "In_Tiered_Loot_Run_Level", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Effective_Level = new GameAttributeI(1402, 0, -1, 0, 0, "Max(Upscaled_Level, Level)", "", "Effective_Level", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Jewel_Rank = new GameAttributeI(1403, 1, -1, 0, 0, "", "", "Jewel_Rank", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Jewel_Upgrades_Used = new GameAttributeI(1408, 0, -1, 0, 0, "", "", "Jewel_Upgrades_Used", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Jewel_Upgrades_Max = new GameAttributeI(1409, 0, -1, 0, 0, "", "", "Jewel_Upgrades_Max", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Jewel_Upgrades_Bonus = new GameAttributeI(1410, 0, -1, 0, 0, "", "", "Jewel_Upgrades_Bonus", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF Tiered_Loot_Run_Reward_Choice_State = new GameAttributeF(1414, -1, -1, 0, 0, "", "", "Tiered_Loot_Run_Reward_Choice_State", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Tiered_Loot_Run_Reward_Receives_Key = new GameAttributeF(1415, -1, -1, 0, 0, "", "", "Tiered_Loot_Run_Reward_Receives_Key", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF CurrentCosmeticEffect = new GameAttributeF(1416, -1, -1, 0, 0, "", "", "CurrentCosmeticEffect", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF XP_Potion_Buff_Expiration = new GameAttributeF(1418, 0, -1, 0, 0, "", "", "XP_Potion_Buff_Expiration", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Gold_Find_Potion_Buff_Expiration = new GameAttributeF(1419, 0, -1, 0, 0, "", "", "Gold_Find_Potion_Buff_Expiration", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Bloodshard_Potion_Buff_Expiration = new GameAttributeF(1420, 0, -1, 0, 0, "", "", "Bloodshard_Potion_Buff_Expiration", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Current_Cosmetic_Pet = new GameAttributeF(1421, -1, -1, 0, 0, "", "", "Current_Cosmetic_Pet", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Cosmetic_Pet_Power = new GameAttributeF(1422, 0, -1, 0, 0, "", "", "Cosmetic_Pet_Power", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Cosmetic_Pet_Expiration = new GameAttributeF(1423, 0, -1, 0, 0, "", "", "Cosmetic_Pet_Expiration", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Cosmetic_Portrait_Frame = new GameAttributeF(1424, -1, -1, 0, 0, "", "", "Cosmetic_Portrait_Frame", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF HQ_Cursed_Realm_Reagents_Collected = new GameAttributeF(1426, 0, -1, 0, 0, "", "", "HQ_Cursed_Realm_Reagents_Collected", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF HQ_Cursed_Realm_Reagents_Dropped = new GameAttributeF(1427, 0, -1, 0, 0, "", "", "HQ_Cursed_Realm_Reagents_Dropped", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Tiered_Loot_Run_Death_Count = new GameAttributeF(1429, 0, -1, 0, 0, "", "", "Tiered_Loot_Run_Death_Count", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Tiered_Loot_Run_Corpse_Resurrection_Allowed_GameTime = new GameAttributeF(1430, 0, -1, 0, 0, "", "", "Tiered_Loot_Run_Corpse_Resurrection_Allowed_GameTime", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Posted_Achievement_Points = new GameAttributeF(1431, 0, -1, 0, 0, "", "", "Last_Posted_Achievement_Points", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Cosmetic_Pet_Actor = new GameAttributeF(1432, -1, -1, 0, 0, "", "", "Cosmetic_Pet_Actor", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Platinum_Cap_Remaining = new GameAttributeF(1433, 0, -1, 0, 0, "", "", "Platinum_Cap_Remaining", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Platinum_Cap_Last_Gain = new GameAttributeF(1434, 0, -1, 0, 0, "", "", "Platinum_Cap_Last_Gain", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Boss_Kill_Time = new GameAttributeF(1435, 0, -1, 0, 0, "", "", "Last_Boss_Kill_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Bounty_Complete_Time = new GameAttributeF(1436, 0, -1, 0, 0, "", "", "Last_Bounty_Complete_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Treasure_Goblin_Kill_Time = new GameAttributeF(1437, 0, -1, 0, 0, "", "", "Last_Treasure_Goblin_Kill_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Stash_Tabs_Rewarded_By_Achievements = new GameAttributeF(1439, 0, -1, 0, 0, "", "", "Stash_Tabs_Rewarded_By_Achievements", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Projectile_Det_Path_Reflect_Count = new GameAttributeF(1441, 0, -1, 0, 0, "", "", "Projectile_Det_Path_Reflect_Count", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Last_Cosmetic_Pet = new GameAttributeF(1442, -1, -1, 0, 0, "", "", "Last_Cosmetic_Pet", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Platinum_Last_Significant_Kill = new GameAttributeF(1443, 0, -1, 0, 0, "", "", "Platinum_Last_Significant_Kill", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Power_Last_Attribute_Snapshot_Update_Time = new GameAttributeF(1444, 0, -1, 0, 0, "", "", "Power_Last_Attribute_Snapshot_Update_Time", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus = new GameAttributeF(1447, 1065353216, -1, 0, 0, "", "", "Multiplicative_Damage_Percent_Bonus", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus_For_Skill = new GameAttributeF(1448, 1065353216, -1, 0, 0, "", "", "Multiplicative_Damage_Percent_Bonus_For_Skill", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus_For_Player = new GameAttributeF(1449, 1065353216, -1, 0, 0, "", "", "Multiplicative_Damage_Percent_Bonus_For_Player", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeB In_Swarm_Rift_World = new GameAttributeB(1451, 0, -1, 0, 0, "", "", "In_Swarm_Rift_World", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus_No_Pets = new GameAttributeF(1452, 1065353216, -1, 0, 0, "", "", "Multiplicative_Damage_Percent_Bonus_No_Pets", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus_ochallengeAgainst_CC_Targets = new GameAttributeF(1453, 1065353216, -1, 0, 0, "", "", "Multiplicative_Damage_Percent_Bonus_ochallengeAgainst_CC_Targets", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus_Against_Slowed_Targets = new GameAttributeF(1454, 1065353216, -1, 0, 0, "", "", "Multiplicative_Damage_Percent_Bonus_Against_Slowed_Targets", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Necromancer_Last_Corpse_Spawn_Check_Tick = new GameAttributeF(1457, 0, -1, 0, 0, "", "", "Necromancer_Last_Corpse_Spawn_Check_Tick", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Necromancer_Corpse_Owner_Player_High = new GameAttributeF(1458, 0, -1, 0, 0, "", "", "Necromancer_Corpse_Owner_Player_High", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Necromancer_Corpse_Owner_Player_Low = new GameAttributeF(1459, 0, -1, 0, 0, "", "", "Necromancer_Corpse_Owner_Player_Low", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Necromancer_Corpse_Charges = new GameAttributeF(1460, 0, -1, 0, 0, "", "", "Necromancer_Corpse_Charges", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeI Necromancer_Corpse_Source_Monster_SNO = new GameAttributeI(1461, -1, -1, 0, 0, "", "", "Necromancer_Corpse_Source_Monster_SNO", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeI Currencies_Discovered = new GameAttributeI(1463, 0, -1, 0, 0, "", "", "Currencies_Discovered", GameAttributeEncoding.Int, 0, 0, 0, 32); - public static readonly GameAttributeF In_Tiered_Challenge_Rift = new GameAttributeF(1464, 0, -1, 0, 0, "", "", "In_Tiered_Challenge_Rift", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Necromancer_Cursed = new GameAttributeF(1465, -1, -1, 0, 0, "", "", "Necromancer_Cursed", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Necromancer_Curse_Count = new GameAttributeF(1466, 0, -1, 0, 0, "", "", "Necromancer_Curse_Count", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Necromancer_Unique_Curse_Count = new GameAttributeF(1467, 0, -1, 0, 0, "", "", "Necromancer_Unique_Curse_Count", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Eligible_For_Weekly_Challenge_Reward = new GameAttributeF(1468, 0, -1, 0, 0, "", "", "Eligible_For_Weekly_Challenge_Reward", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Force_Remote_FX = new GameAttributeF(1469, 0, -1, 0, 0, "", "", "Force_Remote_FX", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Strength_Bonus = new GameAttributeF(18, 0, -1, 0, 0, "", "", "Strength_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Dexterity_Bonus = new GameAttributeF(19, 0, -1, 0, 0, "", "", "Dexterity_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Intelligence_Bonus = new GameAttributeF(20, 0, -1, 0, 0, "", "", "Intelligence_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Vitality_Bonus = new GameAttributeF(21, 0, -1, 0, 0, "", "", "Vitality_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Strength_Bonus_Percent = new GameAttributeF(22, 0, -1, 0, 0, "", "", "Strength_Bonus_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Dexterity_Bonus_Percent = new GameAttributeF(23, 0, -1, 0, 0, "", "", "Dexterity_Bonus_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Intelligence_Bonus_Percent = new GameAttributeF(24, 0, -1, 0, 0, "", "", "Intelligence_Bonus_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Vitality_Bonus_Percent = new GameAttributeF(25, 0, -1, 0, 0, "", "", "Vitality_Bonus_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Strength_Reduction_Percent = new GameAttributeF(26, 0, -1, 0, 0, "", "", "Strength_Reduction_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Dexterity_Reduction_Percent = new GameAttributeF(27, 0, -1, 0, 0, "", "", "Dexterity_Reduction_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Intelligence_Reduction_Percent = new GameAttributeF(28, 0, -1, 0, 0, "", "", "Intelligence_Reduction_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Vitality_Reduction_Percent = new GameAttributeF(29, 0, -1, 0, 0, "", "", "Vitality_Reduction_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Rest_Experience_Bonus_Percent = new GameAttributeF(47, 0, -1, 0, 0, "", "", "Rest_Experience_Bonus_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resource_Cost_Reduction_Total = new GameAttributeF(70, 0, -1, 0, 0, "Resource_Cost_Reduction_Amount", "", "Resource_Cost_Reduction_Total", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resource_Set_Point_Bonus = new GameAttributeF(71, 0, -1, 0, 0, "", "", "Resource_Set_Point_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Faster_Healing_Percent = new GameAttributeF(72, 0, -1, 0, 0, "", "", "Faster_Healing_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Spending_Resource_Heals_Percent = new GameAttributeF(73, 0, -1, 0, 0, "", "", "Spending_Resource_Heals_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Bonus_Healing_Received_Percent = new GameAttributeF(74, 0, -1, 0, 0, "", "", "Bonus_Healing_Received_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Reduced_Healing_Received_Percent = new GameAttributeF(75, 0, -1, 0, 0, "", "", "Reduced_Healing_Received_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Bonus_Health_Percent_Per_Second_From_Globes = new GameAttributeF(89, 0, -1, 0, 0, "", "", "Bonus_Health_Percent_Per_Second_From_Globes", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Bonus_Health_Percent_Per_Second_From_Globes_Total = new GameAttributeF(90, 0, -1, 0, 0, "Bonus_Health_Percent_Per_Second_From_Globes", "", "Bonus_Health_Percent_Per_Second_From_Globes_Total", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Mana_Gained_From_Globes_Percent = new GameAttributeF(91, 0, -1, 0, 0, "", "", "Mana_Gained_From_Globes_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Mana_Gained_From_Globes = new GameAttributeF(92, 0, -1, 0, 0, "", "", "Mana_Gained_From_Globes", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance = new GameAttributeF(93, 0, -1, 0, 0, "", "", "Resistance", GameAttributeEncoding.Float16, 222, 0, 0, 16); - public static readonly GameAttributeF Resistance_Percent = new GameAttributeF(94, 0, -1, 0, 0, "", "", "Resistance_Percent", GameAttributeEncoding.Float16, 222, 0, 0, 16); - public static readonly GameAttributeF Resistance_All = new GameAttributeF(96, 0, -1, 0, 0, "", "", "Resistance_All", GameAttributeEncoding.Float16, 222, 0, 0, 16); - public static readonly GameAttributeF Resistance_Percent_All = new GameAttributeF(97, 0, -1, 0, 0, "", "", "Resistance_Percent_All", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_From_Intelligence = new GameAttributeF(98, 0, -1, 0, 0, "(Intelligence_Total * 0.1)", "", "Resistance_From_Intelligence", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Light_Radius_Percent_Bonus = new GameAttributeF(114, 0, -1, 0, 0, "", "", "Light_Radius_Percent_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Hitpoints_Percent = new GameAttributeF(125, 0, -1, 0, 0, "", "", "Hitpoints_Percent", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Hitpoints_Max_Percent_Bonus_Item = new GameAttributeF(135, 0, -1, 0, 0, "", "", "Hitpoints_Max_Percent_Bonus_Item", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Resource_Percent = new GameAttributeF(157, 100, 10, 0, 0, "", "", "Resource_Percent", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Resource_Regen_Bonus_Percent = new GameAttributeF(159, 0, 10, 0, 0, "", "", "Resource_Regen_Bonus_Percent", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Resource_Regen_Total = new GameAttributeF(160, 0, 10, 0, 0, "Resource_Regen_Stop_Regen ? 0 : Resource_Regen_Per_Second * (1 + Resource_Regen_Bonus_Percent) + (Resource_Regen_Percent_Per_Second * Resource_Max_Total)", "", "Resource_Regen_Total", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Resource_Max_Percent_Bonus = new GameAttributeF(162, 0, 10, 0, 0, "Resource_Percent", "", "Resource_Max_Percent_Bonus", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Movement_Scalar = new GameAttributeF(171, 0, -1, 0, 0, "", "", "Movement_Scalar", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Walking_Rate = new GameAttributeF(172, 0, -1, 0, 0, "", "", "Walking_Rate", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Running_Rate = new GameAttributeF(173, 0, -1, 0, 0, "", "", "Running_Rate", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Sprinting_Rate = new GameAttributeF(174, 0, -1, 0, 0, "", "", "Sprinting_Rate", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Strafing_Rate = new GameAttributeF(175, 0, -1, 0, 0, "", "", "Strafing_Rate", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Walking_Rate_Total = new GameAttributeF(176, 0, -1, 0, 0, "Walking_Rate * Movement_Scalar_Total", "", "Walking_Rate_Total", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Running_Rate_Total = new GameAttributeF(177, 0, -1, 0, 0, "Running_Rate * Movement_Scalar_Total", "", "Running_Rate_Total", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Last_Running_Rate = new GameAttributeF(178, 0, -1, 0, 0, "", "", "Last_Running_Rate", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Sprinting_Rate_Total = new GameAttributeF(179, 0, -1, 0, 0, "Sprinting_Rate * Movement_Scalar_Total", "", "Sprinting_Rate_Total", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Strafing_Rate_Total = new GameAttributeF(180, 0, -1, 0, 0, "Strafing_Rate * Movement_Scalar_Total", "", "Strafing_Rate_Total", GameAttributeEncoding.Float16, 0, 136, 0, 16); - public static readonly GameAttributeF Movement_Bonus_Total = new GameAttributeF(181, 0, -1, 0, 0, "Movement_Bonus_Run_Speed", "", "Movement_Bonus_Total", GameAttributeEncoding.Float16, 222, 0, 0, 16); - public static readonly GameAttributeF Movement_Scalar_Subtotal = new GameAttributeF(182, 0, -1, 0, 0, "Max(0.1, Movement_Scalar) * (1 + Movement_Bonus_Total) * (1-Movement_Scalar_Reduction_Percent * (1-Min(1, Movement_Scalar_Reduction_Resistance)))", "", "Movement_Scalar_Subtotal", GameAttributeEncoding.Float16, 222, 0, 0, 16); - public static readonly GameAttributeF Movement_Scalar_Capped_Total = new GameAttributeF(183, 0, -1, 0, 0, "Min(Movement_Scalar_Cap, Movement_Scalar_Subtotal)", "", "Movement_Scalar_Capped_Total", GameAttributeEncoding.Float16, 222, 0, 0, 16); - public static readonly GameAttributeF Movement_Scalar_Uncapped_Bonus = new GameAttributeF(184, 0, -1, 0, 0, "", "", "Movement_Scalar_Uncapped_Bonus", GameAttributeEncoding.Float16, 222, 0, 0, 16); - public static readonly GameAttributeF Movement_Bonus_Run_Speed = new GameAttributeF(186, 0, -1, 0, 0, "", "", "Movement_Bonus_Run_Speed", GameAttributeEncoding.Float16, 222, 0, 0, 16); - public static readonly GameAttributeF Casting_Speed = new GameAttributeF(188, 0, -1, 0, 0, "", "", "Casting_Speed", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Casting_Speed_Bonus = new GameAttributeF(189, 0, -1, 0, 0, "", "", "Casting_Speed_Bonus", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Casting_Speed_Total = new GameAttributeF(190, 0, -1, 0, 0, "(Casting_Speed + Casting_Speed_Bonus) * Max(0.1, 1 + Casting_Speed_Percent)", "", "Casting_Speed_Total", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Hit_Chance = new GameAttributeF(192, 0, -1, 0, 0, "", "", "Hit_Chance", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Knockback_Attack_Scalar = new GameAttributeF(193, 0, -1, 0, 0, "", "", "Knockback_Attack_Scalar", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF AI_Cooldown_Reduction_Percent = new GameAttributeF(207, 0, -1, 0, 0, "", "", "AI_Cooldown_Reduction_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Power_Cooldown_Reduction_Percent = new GameAttributeF(209, 0, -1, 0, 0, "", "", "Power_Cooldown_Reduction_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Power_Cooldown_Reduction_Percent_All = new GameAttributeF(210, 0, -1, 0, 0, "", "", "Power_Cooldown_Reduction_Percent_All", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Power_Cooldown_Reduction_Percent_All_Capped = new GameAttributeF(211, 0, -1, 0, 0, "Power_Cooldown_Reduction_Percent_All", "", "Power_Cooldown_Reduction_Percent_All_Capped", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Pierce_Chance = new GameAttributeF(261, 0, -1, 0, 0, "", "", "Pierce_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Damage_Absorb_Percent = new GameAttributeF(262, 0, -1, 0, 0, "", "", "Damage_Absorb_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Block_Chance = new GameAttributeF(266, 0, -1, 0, 0, "", "", "Block_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Block_Chance_Sub_Total = new GameAttributeF(267, 0, -1, 0, 0, "Min(1.0, Block_Chance + Block_Chance_Item_Total)", "", "Block_Chance_Sub_Total", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Block_Chance_Bonus_Item = new GameAttributeF(268, 0, -1, 0, 0, "", "", "Block_Chance_Bonus_Item", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Block_Chance_Item = new GameAttributeF(269, 0, -1, 0, 0, "0", "0", "Block_Chance_Item", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Block_Chance_Item_Total = new GameAttributeF(270, 0, -1, 0, 0, "Block_Chance_Item + Block_Chance_Bonus_Item", "", "Block_Chance_Item_Total", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Block_Chance_Uncapped_Bonus = new GameAttributeF(271, 0, -1, 0, 0, "", "", "Block_Chance_Uncapped_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Block_Chance_Capped_Total = new GameAttributeF(272, 0, -1, 0, 0, "Min(1.0, Block_Chance_Sub_Total + Block_Chance_Uncapped_Bonus)", "", "Block_Chance_Capped_Total", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Dodge_Chance_Bonus = new GameAttributeF(280, 0, -1, 0, 0, "", "", "Dodge_Chance_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Dodge_Chance_Bonus_Melee = new GameAttributeF(281, 0, -1, 0, 0, "", "", "Dodge_Chance_Bonus_Melee", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Dodge_Chance_Bonus_Ranged = new GameAttributeF(282, 0, -1, 0, 0, "", "", "Dodge_Chance_Bonus_Ranged", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Stun_Chance = new GameAttributeF(303, 0, -1, 0, 0, "", "", "Stun_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Stun_Length = new GameAttributeF(304, 0, -1, 0, 0, "", "", "Stun_Length", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Stun_Recovery = new GameAttributeF(305, 0, -1, 0, 0, "", "", "Stun_Recovery", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Stun_Recovery_Speed = new GameAttributeF(306, 0, -1, 0, 0, "", "", "Stun_Recovery_Speed", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Poison_Length_Reduction = new GameAttributeF(309, 0, -1, 0, 0, "", "", "Poison_Length_Reduction", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Bleed_Duration = new GameAttributeF(311, 0, -1, 0, 0, "", "", "Bleed_Duration", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Freeze_Length_Reduction = new GameAttributeF(313, 0, -1, 0, 0, "", "", "Freeze_Length_Reduction", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Projectile_Speed = new GameAttributeF(366, 0, -1, 0, 0, "", "", "Projectile_Speed", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Projectile_Speed_Increase_Percent = new GameAttributeF(367, 0, -1, 0, 0, "", "", "Projectile_Speed_Increase_Percent", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Amplify_Damage_Type_Percent = new GameAttributeF(377, 0, -1, 0, 0, "", "", "Amplify_Damage_Type_Percent", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Amplify_Damage_Skill_Percent = new GameAttributeF(378, 0, -1, 0, 0, "", "", "Amplify_Damage_Skill_Percent", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Amplify_Damage_Percent = new GameAttributeF(379, 0, -1, 0, 0, "", "", "Amplify_Damage_Percent", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Item_Cost_Percent_Bonus = new GameAttributeF(385, 0, -1, 0, 0, "", "", "Item_Cost_Percent_Bonus", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Requirement = new GameAttributeF(388, 0, -1, 0, 0, "", "", "Requirement", GameAttributeEncoding.Float16, 8, 0, 0, 16); - public static readonly GameAttributeF Requirements_Ease_Percent = new GameAttributeF(389, 0, -1, 0, 0, "0", "", "Requirements_Ease_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Requirement_When_Equipped = new GameAttributeF(390, 0, -1, 0, 0, "", "", "Requirement_When_Equipped", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Stats_All_Bonus = new GameAttributeF(393, 0, -1, 0, 0, "", "", "Stats_All_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Run_Speed_Granted = new GameAttributeF(402, 0, -1, 0, 0, "", "", "Run_Speed_Granted", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Knockback_Weight = new GameAttributeF(458, 0, -1, 0, 0, "", "", "Knockback_Weight", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Custom_Target_Weight = new GameAttributeF(463, 0, -1, 0, 0, "", "", "Custom_Target_Weight", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Gizmo_Operation_Radius_Override = new GameAttributeF(472, 0, -1, 1, 0, "", "", "Gizmo_Operation_Radius_Override", GameAttributeEncoding.Float16, 4, 0, 0, 16); - public static readonly GameAttributeF Gate_Position = new GameAttributeF(473, 0, -1, 0, 0, "", "", "Gate_Position", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Gate_Velocity = new GameAttributeF(474, 0, -1, 0, 0, "", "", "Gate_Velocity", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Potion_Dilution_Percent = new GameAttributeF(555, 0, -1, 0, 0, "", "", "Potion_Dilution_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Out_Of_Combat_Health_Regen_Percent = new GameAttributeF(556, 0, -1, 0, 0, "", "", "Out_Of_Combat_Health_Regen_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Out_Of_Combat_Mana_Regen_Percent = new GameAttributeF(557, 0, -1, 0, 0, "", "", "Out_Of_Combat_Mana_Regen_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Potion_Dilution_Scalar = new GameAttributeF(559, 0, -1, 0, 0, "", "", "Potion_Dilution_Scalar", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Minion_Count_Bonus_Percent = new GameAttributeF(567, 0, -1, 0, 0, "", "", "Minion_Count_Bonus_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Champion_Clone_Time_Min_In_Seconds = new GameAttributeF(572, 0, -1, 0, 0, "", "", "Champion_Clone_Time_Min_In_Seconds", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Champion_Clone_Time_Delta_In_Seconds = new GameAttributeF(573, 0, -1, 0, 0, "", "", "Champion_Clone_Time_Delta_In_Seconds", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Champion_Clone_Hitpoint_Bonus_Percent = new GameAttributeF(574, 0, -1, 0, 0, "", "", "Champion_Clone_Hitpoint_Bonus_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Champion_Clone_Damage_Bonus_Percent = new GameAttributeF(575, 0, -1, 0, 0, "", "", "Champion_Clone_Damage_Bonus_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Champion_Ghostly_Inactive_Time_Min_In_Seconds = new GameAttributeF(577, 0, -1, 0, 0, "", "", "Champion_Ghostly_Inactive_Time_Min_In_Seconds", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Champion_Ghostly_Inactive_Time_Delta_In_Seconds = new GameAttributeF(578, 0, -1, 0, 0, "", "", "Champion_Ghostly_Inactive_Time_Delta_In_Seconds", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Champion_Ghostly_Active_Time_Min_In_Seconds = new GameAttributeF(579, 0, -1, 0, 0, "", "", "Champion_Ghostly_Active_Time_Min_In_Seconds", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Champion_Ghostly_Active_Time_Delta_In_Seconds = new GameAttributeF(580, 0, -1, 0, 0, "", "", "Champion_Ghostly_Active_Time_Delta_In_Seconds", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Champion_Ghostly_Saved_Dodge_Chance = new GameAttributeF(581, 0, -1, 0, 0, "", "", "Champion_Ghostly_Saved_Dodge_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Projectile_Amount_Bonus_Percent = new GameAttributeF(584, 0, -1, 0, 0, "", "", "Projectile_Amount_Bonus_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Projectile_Reflect_Chance = new GameAttributeF(585, 0, -1, 0, 0, "", "", "Projectile_Reflect_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Attack_Fear_Chance = new GameAttributeF(590, 0, -1, 0, 0, "", "", "Attack_Fear_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Attack_Fear_Time_Min = new GameAttributeF(591, 0, -1, 0, 0, "", "", "Attack_Fear_Time_Min", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Attack_Fear_Time_Delta = new GameAttributeF(592, 0, -1, 0, 0, "", "", "Attack_Fear_Time_Delta", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Scale_Bonus = new GameAttributeF(660, 0, -1, 0, 0, "", "", "Scale_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF SlowTime_Debuff = new GameAttributeF(666, 0, -1, 0, 0, "", "", "SlowTime_Debuff", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Freeze_Damage_Percent_Bonus = new GameAttributeF(669, 0, -1, 0, 0, "", "", "Freeze_Damage_Percent_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF DualWield_BothAttack_Chance = new GameAttributeF(671, 0, -1, 0, 0, "", "", "DualWield_BothAttack_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF DamageCap_Percent = new GameAttributeF(686, 0, -1, 0, 0, "", "", "DamageCap_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF RootAutoDecayPerSecond = new GameAttributeF(691, 0, -1, 0, 0, "", "", "RootAutoDecayPerSecond", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF RootUnitValue = new GameAttributeF(692, 0, -1, 0, 0, "", "", "RootUnitValue", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_Stun = new GameAttributeF(700, 0, -1, 0, 0, "", "", "Resistance_Stun", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_Stun_Total = new GameAttributeF(701, 0, -1, 0, 0, "Resistance_Stun + Resistance_StunRootFreeze", "", "Resistance_Stun_Total", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_Root = new GameAttributeF(702, 0, -1, 0, 0, "", "", "Resistance_Root", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_Root_Total = new GameAttributeF(703, 0, -1, 0, 0, "Resistance_Root + Resistance_StunRootFreeze", "", "Resistance_Root_Total", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_Freeze = new GameAttributeF(704, 0, -1, 0, 0, "", "", "Resistance_Freeze", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_Freeze_Total = new GameAttributeF(705, 0, -1, 0, 0, "Resistance_Freeze + Resistance_StunRootFreeze", "", "Resistance_Freeze_Total", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_StunRootFreeze = new GameAttributeF(706, 0, -1, 0, 0, "", "", "Resistance_StunRootFreeze", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Look_Target_Broadcast_Intensity = new GameAttributeF(723, 0, -1, 0, 0, "", "", "Look_Target_Broadcast_Intensity", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Look_Target_Broadcast_Radius = new GameAttributeF(724, 0, -1, 0, 0, "", "", "Look_Target_Broadcast_Radius", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Gem_Attributes_Multiplier = new GameAttributeF(727, 0, -1, 0, 0, "", "", "Gem_Attributes_Multiplier", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF ScrollDuration = new GameAttributeF(729, 0, -1, 0, 0, "0", "", "ScrollDuration", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Gizmo_Actor_To_Spawn_Scale = new GameAttributeF(731, 0, -1, 0, 0, "", "", "Gizmo_Actor_To_Spawn_Scale", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resource_Cost_Reduction_Percent = new GameAttributeF(738, 0, -1, 0, 0, "", "", "Resource_Cost_Reduction_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resource_Cost_Reduction_Percent_All = new GameAttributeF(740, 0, -1, 0, 0, "", "", "Resource_Cost_Reduction_Percent_All", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Damage_Type_Cost_Reduction_Percent = new GameAttributeF(741, 0, -1, 0, 0, "", "", "Damage_Type_Cost_Reduction_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_Penetration = new GameAttributeF(742, 0, -1, 0, 0, "", "", "Resistance_Penetration", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_Penetration_Total = new GameAttributeF(743, 0, -1, 0, 0, "(Resistance_Penetration + Resistance_Penetration_All#NONE) * (Resistance_Penetration_Percent_All#NONE + 1)", "", "Resistance_Penetration_Total", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_Penetration_All = new GameAttributeF(744, 0, -1, 0, 0, "", "", "Resistance_Penetration_All", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resistance_Penetration_Percent_All = new GameAttributeF(745, 0, -1, 0, 0, "", "", "Resistance_Penetration_Percent_All", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Health_Potion_Bonus_Heal_Percent = new GameAttributeF(747, 0, -1, 0, 0, "", "", "Health_Potion_Bonus_Heal_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Health_Potion_Affects_Allies_Percent = new GameAttributeF(748, 0, -1, 0, 0, "", "", "Health_Potion_Affects_Allies_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Health_Cost_Discount = new GameAttributeF(751, 0, -1, 0, 0, "", "", "Health_Cost_Discount", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Health_Cost_Scalar = new GameAttributeF(752, 0, -1, 0, 0, "", "", "Health_Cost_Scalar", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Frailty_Health_Threshold = new GameAttributeF(753, 0, -1, 0, 0, "", "", "Frailty_Health_Threshold", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Movement_Scalar_Reduction_Percent = new GameAttributeF(755, 0, -1, 0, 0, "", "", "Movement_Scalar_Reduction_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Movement_Scalar_Reduction_Resistance = new GameAttributeF(756, 0, -1, 0, 0, "", "", "Movement_Scalar_Reduction_Resistance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Damage_Absorb_Percent_All = new GameAttributeF(757, 0, -1, 0, 0, "", "", "Damage_Absorb_Percent_All", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Casting_Speed_Percent = new GameAttributeF(811, 0, -1, 0, 0, "", "", "Casting_Speed_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Repair_Discount_Percent = new GameAttributeF(851, 0, -1, 0, 0, "", "", "Repair_Discount_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Screen_Attack_Radius_Constant = new GameAttributeF(1064, 1114636288, -1, 0, 0, "", "", "Screen_Attack_Radius_Constant", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Spawner_Countdown_Percent = new GameAttributeF(1068, 0, -1, 0, 0, "", "", "Spawner_Countdown_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Debuff_Duration_Reduction_Percent = new GameAttributeF(1072, 0, -1, 0, 0, "", "", "Debuff_Duration_Reduction_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Gold_PickUp_Radius = new GameAttributeF(1076, 0, -1, 0, 0, "", "", "Gold_PickUp_Radius", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Resource_Gain_Bonus_Percent = new GameAttributeF(1079, 0, -1, 0, 0, "", "", "Resource_Gain_Bonus_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Turn_Rate_Scalar = new GameAttributeF(1094, 1065353216, -1, 0, 0, "", "", "Turn_Rate_Scalar", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Turn_Accel_Scalar = new GameAttributeF(1095, 1065353216, -1, 0, 0, "", "", "Turn_Accel_Scalar", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Turn_Deccel_Scalar = new GameAttributeF(1096, 1065353216, -1, 0, 0, "", "", "Turn_Deccel_Scalar", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF UI_Only_Percent_Damage_Increase = new GameAttributeF(1115, 0, -1, 0, 0, "", "", "UI_Only_Percent_Damage_Increase", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF On_Hit_Fear_Proc_Chance = new GameAttributeF(1117, 0, -1, 0, 0, "", "", "On_Hit_Fear_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF On_Hit_Stun_Proc_Chance = new GameAttributeF(1118, 0, -1, 0, 0, "", "", "On_Hit_Stun_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF On_Hit_Blind_Proc_Chance = new GameAttributeF(1119, 0, -1, 0, 0, "", "", "On_Hit_Blind_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF On_Hit_Freeze_Proc_Chance = new GameAttributeF(1120, 0, -1, 0, 0, "", "", "On_Hit_Freeze_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF On_Hit_Chill_Proc_Chance = new GameAttributeF(1121, 0, -1, 0, 0, "", "", "On_Hit_Chill_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF On_Hit_Slow_Proc_Chance = new GameAttributeF(1122, 0, -1, 0, 0, "", "", "On_Hit_Slow_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF On_Hit_Immobilize_Proc_Chance = new GameAttributeF(1123, 0, -1, 0, 0, "", "", "On_Hit_Immobilize_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF On_Hit_Knockback_Proc_Chance = new GameAttributeF(1124, 0, -1, 0, 0, "", "", "On_Hit_Knockback_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF On_Hit_Bleed_Proc_Chance = new GameAttributeF(1125, 0, -1, 0, 0, "", "", "On_Hit_Bleed_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Damage_Percent_Reduction_Turns_Into_Heal = new GameAttributeF(1130, 0, -1, 0, 0, "", "", "Damage_Percent_Reduction_Turns_Into_Heal", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Damage_Percent_Reduction_From_Type = new GameAttributeF(1132, 0, -1, 0, 0, "", "", "Damage_Percent_Reduction_From_Type", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Damage_Percent_Bonus_Vs_Monster_Type = new GameAttributeF(1133, 0, -1, 0, 0, "", "", "Damage_Percent_Bonus_Vs_Monster_Type", GameAttributeEncoding.Float16, 136, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Fear_Proc_Chance = new GameAttributeF(1140, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Fear_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Stun_Proc_Chance = new GameAttributeF(1141, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Stun_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Blind_Proc_Chance = new GameAttributeF(1142, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Blind_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Freeze_Proc_Chance = new GameAttributeF(1143, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Freeze_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Chill_Proc_Chance = new GameAttributeF(1144, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Chill_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Slow_Proc_Chance = new GameAttributeF(1145, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Slow_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Immobilize_Proc_Chance = new GameAttributeF(1146, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Immobilize_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Knockback_Proc_Chance = new GameAttributeF(1147, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Knockback_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Chance = new GameAttributeF(1148, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Bleed_Proc_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Fear_Proc_Chance_MainHand = new GameAttributeF(1154, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Fear_Proc_Chance_MainHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Fear_Proc_Chance_OffHand = new GameAttributeF(1155, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Fear_Proc_Chance_OffHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Fear_Proc_Chance_CurrentHand = new GameAttributeF(1156, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Fear_Proc_Chance_OffHand : Weapon_On_Hit_Fear_Proc_Chance_MainHand)", "", "Weapon_On_Hit_Fear_Proc_Chance_CurrentHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Stun_Proc_Chance_MainHand = new GameAttributeF(1157, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Stun_Proc_Chance_MainHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Stun_Proc_Chance_OffHand = new GameAttributeF(1158, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Stun_Proc_Chance_OffHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Stun_Proc_Chance_CurrentHand = new GameAttributeF(1159, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Stun_Proc_Chance_OffHand : Weapon_On_Hit_Stun_Proc_Chance_MainHand)", "", "Weapon_On_Hit_Stun_Proc_Chance_CurrentHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Blind_Proc_Chance_MainHand = new GameAttributeF(1160, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Blind_Proc_Chance_MainHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Blind_Proc_Chance_OffHand = new GameAttributeF(1161, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Blind_Proc_Chance_OffHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Blind_Proc_Chance_CurrentHand = new GameAttributeF(1162, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Blind_Proc_Chance_OffHand : Weapon_On_Hit_Blind_Proc_Chance_MainHand)", "", "Weapon_On_Hit_Blind_Proc_Chance_CurrentHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Freeze_Proc_Chance_MainHand = new GameAttributeF(1163, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Freeze_Proc_Chance_MainHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Freeze_Proc_Chance_OffHand = new GameAttributeF(1164, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Freeze_Proc_Chance_OffHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Freeze_Proc_Chance_CurrentHand = new GameAttributeF(1165, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Freeze_Proc_Chance_OffHand : Weapon_On_Hit_Freeze_Proc_Chance_MainHand)", "", "Weapon_On_Hit_Freeze_Proc_Chance_CurrentHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Chill_Proc_Chance_MainHand = new GameAttributeF(1166, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Chill_Proc_Chance_MainHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Chill_Proc_Chance_OffHand = new GameAttributeF(1167, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Chill_Proc_Chance_OffHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Chill_Proc_Chance_CurrentHand = new GameAttributeF(1168, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Chill_Proc_Chance_OffHand : Weapon_On_Hit_Chill_Proc_Chance_MainHand)", "", "Weapon_On_Hit_Chill_Proc_Chance_CurrentHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Slow_Proc_Chance_MainHand = new GameAttributeF(1169, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Slow_Proc_Chance_MainHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Slow_Proc_Chance_OffHand = new GameAttributeF(1170, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Slow_Proc_Chance_OffHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Slow_Proc_Chance_CurrentHand = new GameAttributeF(1171, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Slow_Proc_Chance_OffHand : Weapon_On_Hit_Slow_Proc_Chance_MainHand)", "", "Weapon_On_Hit_Slow_Proc_Chance_CurrentHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Immobilize_Proc_Chance_MainHand = new GameAttributeF(1172, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Immobilize_Proc_Chance_MainHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Immobilize_Proc_Chance_OffHand = new GameAttributeF(1173, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Immobilize_Proc_Chance_OffHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Immobilize_Proc_Chance_CurrentHand = new GameAttributeF(1174, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Immobilize_Proc_Chance_OffHand : Weapon_On_Hit_Immobilize_Proc_Chance_MainHand)", "", "Weapon_On_Hit_Immobilize_Proc_Chance_CurrentHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Knockback_Proc_Chance_MainHand = new GameAttributeF(1175, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Knockback_Proc_Chance_MainHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Knockback_Proc_Chance_OffHand = new GameAttributeF(1176, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Knockback_Proc_Chance_OffHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Knockback_Proc_Chance_CurrentHand = new GameAttributeF(1177, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Knockback_Proc_Chance_OffHand : Weapon_On_Hit_Knockback_Proc_Chance_MainHand)", "", "Weapon_On_Hit_Knockback_Proc_Chance_CurrentHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Chance_MainHand = new GameAttributeF(1178, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Bleed_Proc_Chance_MainHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Chance_OffHand = new GameAttributeF(1179, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Bleed_Proc_Chance_OffHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Chance_CurrentHand = new GameAttributeF(1180, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Bleed_Proc_Chance_OffHand : Weapon_On_Hit_Bleed_Proc_Chance_MainHand)", "", "Weapon_On_Hit_Bleed_Proc_Chance_CurrentHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Power_Instance_Damage_Percent_Bonus = new GameAttributeF(1197, 0, -1, 0, 0, "", "", "Power_Instance_Damage_Percent_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Power_Resource_Reduction = new GameAttributeF(1198, 0, -1, 0, 0, "", "", "Power_Resource_Reduction", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Power_Resource_Reduction_Percent = new GameAttributeF(1199, 0, -1, 0, 0, "", "", "Power_Resource_Reduction_Percent", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Power_Cooldown_Reduction = new GameAttributeF(1200, 0, -1, 0, 0, "", "", "Power_Cooldown_Reduction", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Power_Cooldown_Reduction_All = new GameAttributeF(1201, 0, -1, 0, 0, "", "", "Power_Cooldown_Reduction_All", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Power_Duration_Increase = new GameAttributeF(1202, 0, -1, 0, 0, "", "", "Power_Duration_Increase", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Power_Crit_Percent_Bonus = new GameAttributeF(1203, 0, -1, 0, 0, "", "", "Power_Crit_Percent_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_Crit_Chance = new GameAttributeF(1204, 0, -1, 0, 0, "", "", "Weapon_Crit_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_Crit_Chance_MainHand = new GameAttributeF(1205, 0, -1, 0, 0, "", "", "Weapon_Crit_Chance_MainHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_Crit_Chance_OffHand = new GameAttributeF(1206, 0, -1, 0, 0, "", "", "Weapon_Crit_Chance_OffHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Weapon_Crit_Chance_CurrentHand = new GameAttributeF(1207, 0, -1, 0, 0, "", "(DualWield_Hand ? Weapon_Crit_Chance_OffHand : Weapon_Crit_Chance_MainHand)", "Weapon_Crit_Chance_CurrentHand", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Item_Durability_Percent_Bonus = new GameAttributeF(1214, 0, -1, 0, 0, "", "", "Item_Durability_Percent_Bonus", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Necromancer_Corpse_Spawn_Chance = new GameAttributeF(1456, 0, -1, 0, 0, "", "", "Necromancer_Corpse_Spawn_Chance", GameAttributeEncoding.Float16, 0, 0, 0, 16); - public static readonly GameAttributeF Gold_Find_Community_Buff = new GameAttributeF(54, 0, -1, 0, 0, "", "", "Gold_Find_Community_Buff", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Gold_Find_Potion_Buff = new GameAttributeF(55, 0, -1, 0, 0, "", "", "Gold_Find_Potion_Buff", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Treasure_Find = new GameAttributeF(67, 0, -1, 0, 0, "", "", "Treasure_Find", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Legendary_Find_Community_Buff = new GameAttributeF(68, 0, -1, 0, 0, "", "", "Legendary_Find_Community_Buff", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Experience_Bonus = new GameAttributeF(77, 0, -1, 0, 0, "", "", "Experience_Bonus", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Experience_Bonus_Percent = new GameAttributeF(78, 0, -1, 0, 0, "", "", "Experience_Bonus_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Experience_Bonus_Percent_Handicap = new GameAttributeF(79, 0, -1, 0, 0, "", "", "Experience_Bonus_Percent_Handicap", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Experience_Bonus_No_Penalty = new GameAttributeF(81, 0, -1, 0, 0, "", "", "Experience_Bonus_No_Penalty", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Health_Globe_Bonus_Chance = new GameAttributeF(82, 0, -1, 0, 0, "", "", "Health_Globe_Bonus_Chance", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Health_Globe_Bonus_Mult_Chance = new GameAttributeF(83, 0, -1, 0, 0, "", "", "Health_Globe_Bonus_Mult_Chance", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Powerup_Globe_Bonus_Chance = new GameAttributeF(84, 0, -1, 0, 0, "", "", "Powerup_Globe_Bonus_Chance", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Powerup_Globe_Bonus_Mult_Chance = new GameAttributeF(85, 0, -1, 0, 0, "", "", "Powerup_Globe_Bonus_Mult_Chance", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Increased_Health_From_Globes_Percent = new GameAttributeF(87, 0, -1, 0, 0, "", "", "Increased_Health_From_Globes_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Increased_Health_From_Globes_Percent_Total = new GameAttributeF(88, 0, -1, 0, 0, "Increased_Health_From_Globes_Percent", "", "Increased_Health_From_Globes_Percent_Total", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Resistance_Total = new GameAttributeF(95, 0, -1, 0, 0, "(Resistance + Resistance_All#NONE + Resistance_From_Intelligence#NONE) * ((Resistance_Percent_All#NONE + Resistance_Percent + 1))", "", "Resistance_Total", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Class_Damage_Reduction_Percent = new GameAttributeF(99, 0, -1, 0, 0, "", "", "Class_Damage_Reduction_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Factor_Level = new GameAttributeF(116, 0, -1, 0, 0, "", "", "Hitpoints_Factor_Level", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Factor_Vitality = new GameAttributeF(117, 0, -1, 0, 0, "", "", "Hitpoints_Factor_Vitality", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Total_From_Vitality = new GameAttributeF(118, 0, -1, 0, 0, "Vitality_Total * Hitpoints_Factor_Vitality", "", "Hitpoints_Total_From_Vitality", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Total_From_Level = new GameAttributeF(119, 0, -1, 0, 0, "(Level-1) * Hitpoints_Factor_Level", "", "Hitpoints_Total_From_Level", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Max = new GameAttributeF(122, 0, -1, 0, 0, "", "", "Hitpoints_Max", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Max_Bonus = new GameAttributeF(123, 0, -1, 0, 0, "", "", "Hitpoints_Max_Bonus", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Regen_Per_Second = new GameAttributeF(126, 0, -1, 0, 0, "", "", "Hitpoints_Regen_Per_Second", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Regen_Per_Second_Bonus = new GameAttributeF(127, 0, -1, 0, 0, "", "", "Hitpoints_Regen_Per_Second_Bonus", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Regen_Per_Second_Bonus_From_Skills = new GameAttributeF(128, 0, -1, 0, 0, "", "", "Hitpoints_Regen_Per_Second_Bonus_From_Skills", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Regen_Bonus_Percent = new GameAttributeF(129, 0, -1, 0, 0, "", "", "Hitpoints_Regen_Bonus_Percent", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Regen_Reduction_Percent = new GameAttributeF(131, 0, -1, 0, 0, "", "", "Hitpoints_Regen_Reduction_Percent", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Regen_Per_Second_Health_Globe = new GameAttributeF(132, 0, -1, 0, 0, "", "", "Hitpoints_Regen_Per_Second_Health_Globe", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_Healed_Target = new GameAttributeF(137, 0, -1, 0, 0, "", "", "Hitpoints_Healed_Target", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Resource_Max = new GameAttributeF(151, 0, 10, 0, 0, "", "", "Resource_Max", GameAttributeEncoding.Float16Or32, 128, 0, 0, 0); - public static readonly GameAttributeF Resource_Max_Bonus = new GameAttributeF(152, 0, 10, 0, 0, "", "", "Resource_Max_Bonus", GameAttributeEncoding.Float16Or32, 222, 0, 0, 0); - public static readonly GameAttributeF Resource_Factor_Level = new GameAttributeF(154, 0, 10, 0, 0, "", "", "Resource_Factor_Level", GameAttributeEncoding.Float16Or32, 128, 0, 0, 0); - public static readonly GameAttributeF Resource_Granted = new GameAttributeF(155, 0, 10, 0, 0, "", "", "Resource_Granted", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Resource_Regen_Per_Second = new GameAttributeF(158, 0, 10, 0, 0, "", "", "Resource_Regen_Per_Second", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Resource_Capacity_Used = new GameAttributeF(163, 0, 10, 0, 0, "", "", "Resource_Capacity_Used", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Resource_Effective_Max = new GameAttributeF(164, 0, 10, 0, 0, "Resource_Max_Total-Resource_Capacity_Used", "", "Resource_Effective_Max", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Resource_Regen_Percent_Per_Second = new GameAttributeF(165, 0, -1, 0, 0, "", "", "Resource_Regen_Percent_Per_Second", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Resource_Degeneration_Stop_Point = new GameAttributeF(166, 0, -1, 0, 0, "", "", "Resource_Degeneration_Stop_Point", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Power_Cooldown_Min_Time = new GameAttributeF(208, 0, -1, 0, 0, "", "", "Power_Cooldown_Min_Time", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Damage_Delta = new GameAttributeF(212, 0, -1, 0, 0, "", "", "Damage_Delta", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Damage_Reduction_Total = new GameAttributeF(263, 0, -1, 0, 0, "", "", "Damage_Reduction_Total", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Damage_Reduction_Current = new GameAttributeF(264, 0, -1, 0, 0, "", "", "Damage_Reduction_Current", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Block_Amount = new GameAttributeF(273, 0, -1, 0, 0, "", "", "Block_Amount", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Block_Amount_Bonus_Percent = new GameAttributeF(274, 0, -1, 0, 0, "", "", "Block_Amount_Bonus_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Block_Amount_Item_Min = new GameAttributeF(277, 0, -1, 0, 0, "", "", "Block_Amount_Item_Min", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Block_Amount_Item_Delta = new GameAttributeF(278, 0, -1, 0, 0, "", "", "Block_Amount_Item_Delta", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Block_Amount_Item_Bonus = new GameAttributeF(279, 0, -1, 0, 0, "", "", "Block_Amount_Item_Bonus", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Get_Hit_Current = new GameAttributeF(286, 0, -1, 0, 0, "", "", "Get_Hit_Current", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Get_Hit_Max_Base = new GameAttributeF(287, 0, -1, 0, 0, "", "", "Get_Hit_Max_Base", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Get_Hit_Max_Per_Level = new GameAttributeF(288, 0, -1, 0, 0, "", "", "Get_Hit_Max_Per_Level", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Get_Hit_Max = new GameAttributeF(289, 0, -1, 0, 0, "Get_Hit_Max_Base + (Get_Hit_Max_Per_Level * Level)", "", "Get_Hit_Max", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Get_Hit_Recovery_Base = new GameAttributeF(290, 0, -1, 0, 0, "", "", "Get_Hit_Recovery_Base", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Get_Hit_Recovery_Per_Level = new GameAttributeF(291, 0, -1, 0, 0, "", "", "Get_Hit_Recovery_Per_Level", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Get_Hit_Recovery = new GameAttributeF(292, 0, -1, 0, 0, "Get_Hit_Recovery_Base + (Get_Hit_Recovery_Per_Level * Level)", "", "Get_Hit_Recovery", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Get_Hit_Damage = new GameAttributeF(293, 0, -1, 0, 0, "", "", "Get_Hit_Damage", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Get_Hit_Damage_Scalar = new GameAttributeF(294, 0, -1, 0, 0, "", "", "Get_Hit_Damage_Scalar", GameAttributeEncoding.Float16Or32, 136, 0, 0, 0); - public static readonly GameAttributeF Chill_Duration_Bonus_Percent = new GameAttributeF(315, 0, -1, 0, 0, "", "", "Chill_Duration_Bonus_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Freeze_Duration_Bonus_Percent = new GameAttributeF(316, 0, -1, 0, 0, "", "", "Freeze_Duration_Bonus_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Stun_Duration_Bonus_Percent = new GameAttributeF(317, 0, -1, 0, 0, "", "", "Stun_Duration_Bonus_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Immobilize_Duration_Bonus_Percent = new GameAttributeF(318, 0, -1, 0, 0, "", "", "Immobilize_Duration_Bonus_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Fear_Duration_Bonus_Percent = new GameAttributeF(319, 0, -1, 0, 0, "", "", "Fear_Duration_Bonus_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Blind_Duration_Bonus_Percent = new GameAttributeF(320, 0, -1, 0, 0, "", "", "Blind_Duration_Bonus_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Charm_Duration_Bonus_Percent = new GameAttributeF(321, 0, -1, 0, 0, "", "", "Charm_Duration_Bonus_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Slow_Duration_Bonus_Percent = new GameAttributeF(322, 0, -1, 0, 0, "", "", "Slow_Duration_Bonus_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Suffocation_Per_Second = new GameAttributeF(334, 0, -1, 0, 0, "", "", "Suffocation_Per_Second", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Suffocation_Unit_Value = new GameAttributeF(335, 0, -1, 0, 0, "", "", "Suffocation_Unit_Value", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Resource_On_Hit = new GameAttributeF(347, 0, -1, 0, 0, "", "", "Resource_On_Hit", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Resource_On_Hit_Bonus_Pct = new GameAttributeF(348, 0, -1, 0, 0, "", "", "Resource_On_Hit_Bonus_Pct", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Resource_On_Hit_Bonus = new GameAttributeF(349, 0, -1, 0, 0, "", "", "Resource_On_Hit_Bonus", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Resource_On_Kill = new GameAttributeF(350, 0, -1, 0, 0, "", "", "Resource_On_Kill", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Resource_On_Crit = new GameAttributeF(351, 0, -1, 0, 0, "", "", "Resource_On_Crit", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_On_Hit = new GameAttributeF(352, 0, -1, 0, 0, "", "", "Hitpoints_On_Hit", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_On_Kill = new GameAttributeF(353, 0, -1, 0, 0, "", "", "Hitpoints_On_Kill", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_On_Kill_Reduction_Percent = new GameAttributeF(354, 0, -1, 0, 0, "", "", "Hitpoints_On_Kill_Reduction_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Hitpoints_On_Kill_Total = new GameAttributeF(355, 0, -1, 0, 0, "Hitpoints_On_Kill * Pin(1-Hitpoints_On_Kill_Reduction_Percent, 0, 2)", "", "Hitpoints_On_Kill_Total", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Damage_To_Mana = new GameAttributeF(356, 0, -1, 0, 0, "", "", "Damage_To_Mana", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Damage_Power_Delta = new GameAttributeF(358, 0, -1, 0, 0, "", "", "Damage_Power_Delta", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Damage_Power_Min = new GameAttributeF(359, 0, -1, 0, 0, "", "", "Damage_Power_Min", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Last_Damage_Amount = new GameAttributeF(375, -1, -1, 0, 0, "", "", "Last_Damage_Amount", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Breakable_Shield_HP = new GameAttributeF(534, 0, -1, 0, 0, "", "", "Breakable_Shield_HP", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF DPS = new GameAttributeF(679, 0, -1, 0, 0, "", "", "DPS", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Freeze_Damage = new GameAttributeF(681, 0, -1, 0, 0, "", "", "Freeze_Damage", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Freeze_Capacity = new GameAttributeF(682, 0, -1, 0, 0, "", "", "Freeze_Capacity", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Thaw_Rate = new GameAttributeF(683, 0, -1, 0, 0, "", "", "Thaw_Rate", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Chilled_Dur_Bonus_Percent = new GameAttributeF(684, 0, -1, 0, 0, "", "", "Chilled_Dur_Bonus_Percent", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF DOT_DPS = new GameAttributeF(685, 0, -1, 0, 0, "", "", "DOT_DPS", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF CrowdControl_Reduction = new GameAttributeF(707, 0, -1, 0, 0, "", "", "CrowdControl_Reduction", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Monster_Play_Get_Hit_Bonus = new GameAttributeF(765, 0, -1, 0, 0, "", "", "Monster_Play_Get_Hit_Bonus", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF On_Hit_Bleed_Proc_Damage_Base = new GameAttributeF(1126, 0, -1, 0, 0, "", "", "On_Hit_Bleed_Proc_Damage_Base", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF On_Hit_Bleed_Proc_Damage_Delta = new GameAttributeF(1127, 0, -1, 0, 0, "", "", "On_Hit_Bleed_Proc_Damage_Delta", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Base = new GameAttributeF(1149, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Bleed_Proc_Damage_Base", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Delta = new GameAttributeF(1150, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Bleed_Proc_Damage_Delta", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Chance = new GameAttributeF(1151, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Percent_Bleed_Proc_Chance", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Damage = new GameAttributeF(1152, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Percent_Bleed_Proc_Damage", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Duration = new GameAttributeF(1153, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Percent_Bleed_Proc_Duration", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Base_MainHand = new GameAttributeF(1181, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Bleed_Proc_Damage_Base_MainHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Base_OffHand = new GameAttributeF(1182, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Bleed_Proc_Damage_Base_OffHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Base_CurrentHand = new GameAttributeF(1183, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Bleed_Proc_Damage_Base_OffHand : Weapon_On_Hit_Bleed_Proc_Damage_Base_MainHand)", "", "Weapon_On_Hit_Bleed_Proc_Damage_Base_CurrentHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Delta_MainHand = new GameAttributeF(1184, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Bleed_Proc_Damage_Delta_MainHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Delta_OffHand = new GameAttributeF(1185, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Bleed_Proc_Damage_Delta_OffHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Delta_CurrentHand = new GameAttributeF(1186, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Bleed_Proc_Damage_Delta_OffHand : Weapon_On_Hit_Bleed_Proc_Damage_Delta_MainHand)", "", "Weapon_On_Hit_Bleed_Proc_Damage_Delta_CurrentHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Chance_MainHand = new GameAttributeF(1187, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Percent_Bleed_Proc_Chance_MainHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Chance_OffHand = new GameAttributeF(1188, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Percent_Bleed_Proc_Chance_OffHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Chance_CurrentHand = new GameAttributeF(1189, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Percent_Bleed_Proc_Chance_OffHand : Weapon_On_Hit_Percent_Bleed_Proc_Chance_MainHand)", "", "Weapon_On_Hit_Percent_Bleed_Proc_Chance_CurrentHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Damage_MainHand = new GameAttributeF(1190, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Percent_Bleed_Proc_Damage_MainHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Damage_Base_OffHand = new GameAttributeF(1191, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Percent_Bleed_Proc_Damage_Base_OffHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Damage_Base_CurrentHand = new GameAttributeF(1192, 0, -1, 0, 0, "(DualWield_Hand ? Weapon_On_Hit_Percent_Bleed_Proc_Damage_Base_OffHand : Weapon_On_Hit_Percent_Bleed_Proc_Damage_MainHand)", "", "Weapon_On_Hit_Percent_Bleed_Proc_Damage_Base_CurrentHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Duration_MainHand = new GameAttributeF(1193, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Percent_Bleed_Proc_Duration_MainHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Duration_OffHand = new GameAttributeF(1194, 0, -1, 0, 0, "", "", "Weapon_On_Hit_Percent_Bleed_Proc_Duration_OffHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Duration_CurrentHand = new GameAttributeF(1195, 0, -1, 0, 0, "", "(DualWield_Hand ? Weapon_On_Hit_Percent_Bleed_Proc_Duration_OffHand : Weapon_On_Hit_Percent_Bleed_Proc_Duration_MainHand)", "Weapon_On_Hit_Percent_Bleed_Proc_Duration_CurrentHand", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF CrowdControl_Resistance = new GameAttributeF(1296, 0, -1, 0, 0, "", "", "CrowdControl_Resistance", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF CrowdControl_Projected_End_Time = new GameAttributeF(1297, 0, -1, 0, 0, "", "", "CrowdControl_Projected_End_Time", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Seasonal_Legendary_Chance = new GameAttributeF(1304, 0, -1, 0, 0, "", "", "Seasonal_Legendary_Chance", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Class_Damage_Reduction_Percent_PVP = new GameAttributeF(1313, 0, -1, 0, 0, "", "", "Class_Damage_Reduction_Percent_PVP", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Experience_Bonus_Percent_IGR_Buff = new GameAttributeF(1327, 0, -1, 0, 0, "", "", "Experience_Bonus_Percent_IGR_Buff", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Experience_Bonus_Percent_Anniversary_Buff = new GameAttributeF(1328, 0, -1, 0, 0, "", "", "Experience_Bonus_Percent_Anniversary_Buff", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Experience_Bonus_Percent_Community_Buff = new GameAttributeF(1329, 0, -1, 0, 0, "", "", "Experience_Bonus_Percent_Community_Buff", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Experience_Bonus_Percent_Potion_Buff = new GameAttributeF(1330, 0, -1, 0, 0, "", "", "Experience_Bonus_Percent_Potion_Buff", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Experience_Bonus_Percent_Super_Scalar = new GameAttributeF(1331, 0, -1, 0, 0, "", "", "Experience_Bonus_Percent_Super_Scalar", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Experience_Bonus_Percent_Super_Scalar_Total = new GameAttributeF(1332, 0, -1, 0, 0, "(Experience_Bonus_Percent_Super_Scalar + 1) * (Experience_Bonus_Percent_Community_Buff + 1) * (Experience_Bonus_Percent_IGR_Buff + 1) * (Experience_Bonus_Percent_Anniversary_Buff + 1) * (Experience_Bonus_Percent_Potion_Buff + 1)", "", "Experience_Bonus_Percent_Super_Scalar_Total", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeF Bloodshard_Bonus_Percent_Potion_Buff = new GameAttributeF(1417, 0, -1, 0, 0, "", "", "Bloodshard_Bonus_Percent_Potion_Buff", GameAttributeEncoding.Float16Or32, 0, 0, 0, 0); - public static readonly GameAttributeI DualWield_Hand = new GameAttributeI(4, 0, -1, 0, 0, "", "", "DualWield_Hand", GameAttributeEncoding.Int, 0, 0, 2, 2); - public static readonly GameAttributeI DualWield_Hand_Next = new GameAttributeI(5, 0, -1, 0, 0, "", "", "DualWield_Hand_Next", GameAttributeEncoding.Int, 0, 0, 2, 2); - public static readonly GameAttributeB DualWield_Hands_Swapped = new GameAttributeB(6, 0, -1, 0, 0, "", "", "DualWield_Hands_Swapped", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Backpack_Slots = new GameAttributeI(8, 0, -1, 0, 0, "", "", "Backpack_Slots", GameAttributeEncoding.Int, 136, 0, 128, 8); - public static readonly GameAttributeI Shared_Stash_Slots = new GameAttributeI(9, 0, -1, 0, 0, "", "", "Shared_Stash_Slots", GameAttributeEncoding.Int, 136, 0, 910, 10); - public static readonly GameAttributeI Primary_Damage_Attribute = new GameAttributeI(30, -1, -1, 0, 0, "", "", "Primary_Damage_Attribute", GameAttributeEncoding.Int, 0, -1, 3, 3); - public static readonly GameAttributeI Level = new GameAttributeI(57, 0, -1, 0, 0, "", "", "Level", GameAttributeEncoding.IntMinMax, 222, -1, 99, 7); - public static readonly GameAttributeI Level_Cap = new GameAttributeI(58, 0, -1, 0, 0, "", "", "Level_Cap", GameAttributeEncoding.IntMinMax, 1, -1, 70, 7); - public static readonly GameAttributeI Alt_Level = new GameAttributeI(59, 0, -1, 0, 0, "", "", "Alt_Level", GameAttributeEncoding.IntMinMax, 1, -1, 20000, 15); - public static readonly GameAttributeB Magic_And_Gold_Find_Suppressed = new GameAttributeB(66, 0, -1, 0, 0, "", "", "Magic_And_Gold_Find_Suppressed", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Resource_Cost_Reduction_Amount = new GameAttributeI(69, 0, -1, 0, 0, "", "", "Resource_Cost_Reduction_Amount", GameAttributeEncoding.Int, 0, -4095, 16383, 15); - public static readonly GameAttributeB Healing_Well_Restores_Resource = new GameAttributeB(76, 0, -1, 0, 0, "", "", "Healing_Well_Restores_Resource", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Skill = new GameAttributeI(100, 0, -1, 0, 0, "", "", "Skill", GameAttributeEncoding.Int, 136, 0, 4095, 12); - public static readonly GameAttributeI Skill_From_Item = new GameAttributeI(101, 0, -1, 0, 0, "", "", "Skill_From_Item", GameAttributeEncoding.IntMinMax, 136, 0, 1, 1); - public static readonly GameAttributeI Skill_Total = new GameAttributeI(102, 0, -1, 0, 0, "Pin(Skill + Skill_From_Item, 0, 1)", "", "Skill_Total", GameAttributeEncoding.Int, 136, 0, 4095, 12); - public static readonly GameAttributeI TeamID = new GameAttributeI(103, -1, -1, 1, 1, "", "", "TeamID", GameAttributeEncoding.IntMinMax, 222, -1, 23, 5); - public static readonly GameAttributeI Team_Override = new GameAttributeI(104, -1, -1, 0, 0, "", "", "Team_Override", GameAttributeEncoding.IntMinMax, 222, -1, 23, 5); - public static readonly GameAttributeB Invulnerable = new GameAttributeB(105, 0, -1, 0, 0, "", "", "Invulnerable", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Loading = new GameAttributeB(106, 0, -1, 0, 0, "", "", "Loading", GameAttributeEncoding.IntMinMax, 222, 0, 1, 1); - public static readonly GameAttributeB Loading_NewGame = new GameAttributeB(110, 0, -1, 0, 0, "", "", "Loading_NewGame", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Auto_Porting_To_Save_Point = new GameAttributeB(111, 0, -1, 0, 0, "", "", "Auto_Porting_To_Save_Point", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB No_Damage = new GameAttributeB(112, 0, -1, 0, 0, "", "", "No_Damage", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB No_AutoPickup = new GameAttributeB(113, 0, -1, 0, 0, "", "", "No_AutoPickup", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Hitpoints_Granted_Duration = new GameAttributeI(121, 0, -1, 0, 0, "", "", "Hitpoints_Granted_Duration", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeB Hitpoints_Frozen = new GameAttributeB(138, 0, -1, 0, 0, "", "", "Hitpoints_Frozen", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Healing_Suppressed = new GameAttributeB(139, 0, -1, 0, 0, "", "", "Healing_Suppressed", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Resource_Type_Primary = new GameAttributeI(148, -1, -1, 3, 1, "", "", "Resource_Type_Primary", GameAttributeEncoding.Int, 128, -1, 9, 4); - public static readonly GameAttributeI Resource_Type_Secondary = new GameAttributeI(149, -1, -1, 3, 1, "", "", "Resource_Type_Secondary", GameAttributeEncoding.Int, 128, -1, 9, 4); - public static readonly GameAttributeI Resource_Granted_Duration = new GameAttributeI(156, 0, 10, 0, 0, "", "", "Resource_Granted_Duration", GameAttributeEncoding.Int, 136, 0, 16777215, 24); - public static readonly GameAttributeB Resource_Regen_Stop_Regen = new GameAttributeB(161, 0, 10, 0, 0, "", "", "Resource_Regen_Stop_Regen", GameAttributeEncoding.IntMinMax, 136, 0, 1, 1); - public static readonly GameAttributeI Highest_Solo_Rift_Level = new GameAttributeI(167, 0, -1, 0, 0, "", "", "Highest_Solo_Rift_Level", GameAttributeEncoding.Int, 0, 0, 511, 9); - public static readonly GameAttributeI Highest_Unlocked_Rift_Level = new GameAttributeI(168, 13, -1, 0, 0, "", "", "Highest_Unlocked_Rift_Level", GameAttributeEncoding.Int, 0, 0, 511, 9); - public static readonly GameAttributeI Last_Rift_Started_Level = new GameAttributeI(169, 0, -1, 0, 0, "", "", "Last_Rift_Started_Level", GameAttributeEncoding.Int, 0, 0, 511, 9); - public static readonly GameAttributeI Highest_Hero_Solo_Rift_Level = new GameAttributeI(170, 0, -1, 0, 0, "", "", "Highest_Hero_Solo_Rift_Level", GameAttributeEncoding.Int, 0, 0, 511, 9); - public static readonly GameAttributeB Always_Hits = new GameAttributeB(191, 0, -1, 0, 0, "", "", "Always_Hits", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Cannot_Dodge = new GameAttributeB(285, 0, -1, 0, 0, "", "", "Cannot_Dodge", GameAttributeEncoding.IntMinMax, 136, 0, 1, 1); - public static readonly GameAttributeB Ignores_Critical_Hits = new GameAttributeB(297, 0, -1, 0, 0, "", "", "Ignores_Critical_Hits", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Immunity = new GameAttributeB(298, 0, -1, 0, 0, "", "", "Immunity", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Untargetable = new GameAttributeB(299, 0, -1, 1, 1, "", "", "Untargetable", GameAttributeEncoding.Int, 222, 0, 1, 1); - public static readonly GameAttributeB Immobolize = new GameAttributeB(300, 0, -1, 0, 0, "", "", "Immobolize", GameAttributeEncoding.IntMinMax, 1, 0, 1, 1); - public static readonly GameAttributeB Immune_To_Knockback = new GameAttributeB(301, 0, -1, 0, 0, "", "", "Immune_To_Knockback", GameAttributeEncoding.IntMinMax, 1, 0, 1, 1); - public static readonly GameAttributeB Power_Immobilize = new GameAttributeB(302, 0, -1, 0, 0, "", "", "Power_Immobilize", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Stunned = new GameAttributeB(307, 0, -1, 0, 0, "", "", "Stunned", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Stun_Immune = new GameAttributeB(308, 0, -1, 0, 0, "", "", "Stun_Immune", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Bleeding = new GameAttributeB(310, 0, -1, 0, 0, "", "", "Bleeding", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Chilled = new GameAttributeB(312, 0, -1, 0, 0, "", "", "Chilled", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Freeze_Immune = new GameAttributeB(314, 0, -1, 0, 0, "", "", "Freeze_Immune", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Webbed = new GameAttributeB(323, 0, -1, 0, 0, "", "", "Webbed", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Slow = new GameAttributeB(324, 0, -1, 0, 0, "", "", "Slow", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB FireAura = new GameAttributeB(325, 0, -1, 0, 0, "", "", "FireAura", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB LightningAura = new GameAttributeB(326, 0, -1, 0, 0, "", "", "LightningAura", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB ColdAura = new GameAttributeB(327, 0, -1, 0, 0, "", "", "ColdAura", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB PoisonAura = new GameAttributeB(328, 0, -1, 0, 0, "", "", "PoisonAura", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Blind = new GameAttributeB(329, 0, -1, 0, 0, "", "", "Blind", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Enraged = new GameAttributeB(330, 0, -1, 0, 0, "", "", "Enraged", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Slowdown_Immune = new GameAttributeB(331, 0, -1, 0, 0, "", "", "Slowdown_Immune", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Gethit_Immune = new GameAttributeB(332, 0, -1, 0, 0, "", "", "Gethit_Immune", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AttackSpeed_Reduction_Immune = new GameAttributeB(333, 0, -1, 0, 0, "", "", "AttackSpeed_Reduction_Immune", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Thorns_Has_Damage_Type = new GameAttributeB(343, 0, -1, 0, 0, "", "", "Thorns_Has_Damage_Type", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Skill_Toggled_State = new GameAttributeB(369, 0, -1, 0, 0, "", "", "Skill_Toggled_State", GameAttributeEncoding.IntMinMax, 1, 0, 1, 1); - public static readonly GameAttributeI Skill_Charges = new GameAttributeI(370, 0, -1, 0, 0, "", "", "Skill_Charges", GameAttributeEncoding.Int, 1, 0, 99, 7); - public static readonly GameAttributeI Difficulty = new GameAttributeI(374, -1, -1, 0, 0, "", "", "Difficulty", GameAttributeEncoding.Int, 136, -1, 6, 3); - public static readonly GameAttributeB In_Knockback = new GameAttributeB(376, 0, -1, 0, 0, "", "", "In_Knockback", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Item_Quality_Level = new GameAttributeI(383, -1, -1, 4, 1, "", "", "Item_Quality_Level", GameAttributeEncoding.IntMinMax, 8, -1, 11, 4); - public static readonly GameAttributeI Item_Quality_Level_Identified = new GameAttributeI(384, -1, -1, 4, 1, "", "", "Item_Quality_Level_Identified", GameAttributeEncoding.IntMinMax, 8, -1, 11, 4); - public static readonly GameAttributeB Item_Equipped = new GameAttributeB(386, 0, -1, 0, 0, "", "", "Item_Equipped", GameAttributeEncoding.IntMinMax, 8, 0, 1, 1); - public static readonly GameAttributeI Sockets = new GameAttributeI(391, 0, -1, 0, 1, "", "0", "Sockets", GameAttributeEncoding.Int, 8, 0, 3, 2); - public static readonly GameAttributeI Sockets_Filled = new GameAttributeI(392, 0, -1, 0, 1, "", "0", "Sockets_Filled", GameAttributeEncoding.Int, 8, 0, 3, 2); - public static readonly GameAttributeI Item_Binding_Level_Override = new GameAttributeI(396, 0, -1, 0, 0, "0", "", "Item_Binding_Level_Override", GameAttributeEncoding.Int, 8, 0, 4, 3); - public static readonly GameAttributeI Item_Targeted_Player_Class = new GameAttributeI(398, -1, -1, 0, 0, "0", "", "Item_Targeted_Player_Class", GameAttributeEncoding.Int, 8, -1, 7, 4); - public static readonly GameAttributeI Item_Targeted_Hireling_Class = new GameAttributeI(399, 0, -1, 0, 0, "0", "", "Item_Targeted_Hireling_Class", GameAttributeEncoding.Int, 8, 0, 4, 3); - public static readonly GameAttributeI Run_Speed_Duration = new GameAttributeI(403, 0, -1, 0, 0, "", "", "Run_Speed_Duration", GameAttributeEncoding.Int, 136, 0, 16777215, 24); - public static readonly GameAttributeB IsCrafted = new GameAttributeB(406, 0, -1, 0, 0, "0", "", "IsCrafted", GameAttributeEncoding.IntMinMax, 8, 0, 1, 1); - public static readonly GameAttributeB IsVendorBought = new GameAttributeB(407, 0, -1, 0, 0, "", "", "IsVendorBought", GameAttributeEncoding.IntMinMax, 8, 0, 1, 1); - public static readonly GameAttributeI DyeType = new GameAttributeI(408, 0, -1, 0, 0, "0", "", "DyeType", GameAttributeEncoding.Int, 8, -1, 30, 5); - public static readonly GameAttributeB Loot_2_0_Drop = new GameAttributeB(409, 0, -1, 0, 0, "", "", "Loot_2_0_Drop", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Post_2_1_2_Drop = new GameAttributeB(410, 0, -1, 0, 0, "", "", "Post_2_1_2_Drop", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Post_2_1_3_Drop_ = new GameAttributeB(411, 0, -1, 0, 0, "", "", "Post_2_1_3_Drop", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Post_2_5_0_Drop = new GameAttributeB(412, 0, -1, 0, 0, "", "", "Post_2_5_0_Drop", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Ancient_Rank = new GameAttributeI(413, 0, -1, 0, 0, "", "", "Ancient_Rank", GameAttributeEncoding.Int, 8, 0, 2, 2); - public static readonly GameAttributeB Unidentified = new GameAttributeB(414, 0, -1, 0, 0, "", "", "Unidentified", GameAttributeEncoding.IntMinMax, 8, 0, 1, 1); - public static readonly GameAttributeB RemoveLevelReq = new GameAttributeB(415, 0, -1, 0, 0, "", "", "RemoveLevelReq", GameAttributeEncoding.IntMinMax, 8, 0, 1, 1); - public static readonly GameAttributeB ConsumableAddSockets = new GameAttributeB(416, 0, -1, 0, 0, "", "", "ConsumableAddSockets", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AddSocketsType_Weapon = new GameAttributeB(417, 0, -1, 0, 0, "", "", "AddSocketsType_Weapon", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AddSocketsType_Offhand = new GameAttributeB(418, 0, -1, 0, 0, "", "", "AddSocketsType_Offhand", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AddSocketsType_Legs = new GameAttributeB(419, 0, -1, 0, 0, "", "", "AddSocketsType_Legs", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AddSocketsType_Chest = new GameAttributeB(420, 0, -1, 0, 0, "", "", "AddSocketsType_Chest", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AddSocketsType_Helm = new GameAttributeB(421, 0, -1, 0, 0, "", "", "AddSocketsType_Helm", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AddSocketsType_Jewelry = new GameAttributeB(422, 0, -1, 0, 0, "", "", "AddSocketsType_Jewelry", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Always_Plays_GetHit = new GameAttributeB(438, 0, -1, 0, 0, "", "", "Always_Plays_GetHit", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Hidden = new GameAttributeB(439, 0, -1, 0, 0, "", "", "Hidden", GameAttributeEncoding.IntMinMax, 136, 0, 1, 1); - public static readonly GameAttributeI Attack_Cooldown_Min = new GameAttributeI(444, 0, -1, 0, 0, "", "", "Attack_Cooldown_Min", GameAttributeEncoding.Int, 136, 0, 16777215, 24); - public static readonly GameAttributeI Attack_Cooldown_Delta = new GameAttributeI(445, 0, -1, 0, 0, "", "", "Attack_Cooldown_Delta", GameAttributeEncoding.Int, 136, 0, 16777215, 24); - public static readonly GameAttributeI InitialCooldownMinTotal = new GameAttributeI(446, 0, -1, 0, 0, "InitialCooldownMin / Attacks_Per_Second_Total", "", "InitialCooldownMinTotal", GameAttributeEncoding.Int, 136, 0, 16777215, 24); - public static readonly GameAttributeI InitialCooldownDeltaTotal = new GameAttributeI(447, 0, -1, 0, 0, "InitialCooldownDelta / Attacks_Per_Second_Total", "", "InitialCooldownDeltaTotal", GameAttributeEncoding.Int, 136, 0, 16777215, 24); - public static readonly GameAttributeI Attack_Cooldown_Min_Total = new GameAttributeI(448, 0, -1, 0, 0, "Attack_Cooldown_Min / Attacks_Per_Second_Total", "", "Attack_Cooldown_Min_Total", GameAttributeEncoding.Int, 136, 0, 16777215, 24); - public static readonly GameAttributeI Attack_Cooldown_Delta_Total = new GameAttributeI(449, 0, -1, 0, 0, "Attack_Cooldown_Delta / Attacks_Per_Second_Total", "", "Attack_Cooldown_Delta_Total", GameAttributeEncoding.Int, 136, 0, 16777215, 24); - public static readonly GameAttributeI Closing_Cooldown_Min_Total = new GameAttributeI(450, 0, -1, 0, 0, "", "", "Closing_Cooldown_Min_Total", GameAttributeEncoding.Int, 136, 0, 16777215, 24); - public static readonly GameAttributeI Closing_Cooldown_Delta_Total = new GameAttributeI(451, 0, -1, 0, 0, "", "", "Closing_Cooldown_Delta_Total", GameAttributeEncoding.Int, 136, 0, 16777215, 24); - public static readonly GameAttributeB Quest_Monster = new GameAttributeB(452, 0, -1, 0, 0, "", "", "Quest_Monster", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Removes_Body_On_Death = new GameAttributeB(455, 0, -1, 0, 0, "", "", "Removes_Body_On_Death", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI InitialCooldownMin = new GameAttributeI(456, 0, -1, 0, 0, "", "", "InitialCooldownMin", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI InitialCooldownDelta = new GameAttributeI(457, 0, -1, 0, 0, "", "", "InitialCooldownDelta", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeB UntargetableByPets = new GameAttributeB(459, 0, -1, 0, 0, "", "", "UntargetableByPets", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Damage_State_Current = new GameAttributeI(460, 0, -1, 0, 0, "", "", "Damage_State_Current", GameAttributeEncoding.Int, 0, 0, 15, 4); - public static readonly GameAttributeI Damage_State_Max = new GameAttributeI(461, 0, -1, 0, 0, "", "", "Damage_State_Max", GameAttributeEncoding.Int, 0, 0, 15, 4); - public static readonly GameAttributeB Is_Player_Decoy = new GameAttributeB(462, 0, -1, 0, 0, "", "", "Is_Player_Decoy", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Gizmo_State = new GameAttributeI(464, -1, -1, 3, 1, "", "", "Gizmo_State", GameAttributeEncoding.IntMinMax, 4, -1, 30, 5); - public static readonly GameAttributeI Gizmo_Charges = new GameAttributeI(465, 0, -1, 1, 1, "", "", "Gizmo_Charges", GameAttributeEncoding.Int, 4, -1, 30, 5); - public static readonly GameAttributeB Chest_Open = new GameAttributeB(466, 0, -1, 0, 0, "", "", "Chest_Open", GameAttributeEncoding.IntMinMax, 4, 0, 1, 1); - public static readonly GameAttributeB Door_Locked = new GameAttributeB(467, 0, -1, 0, 0, "", "", "Door_Locked", GameAttributeEncoding.IntMinMax, 4, 0, 1, 1); - public static readonly GameAttributeB Gizmo_Disabled_By_Script = new GameAttributeB(469, 0, -1, 0, 0, "", "", "Gizmo_Disabled_By_Script", GameAttributeEncoding.IntMinMax, 222, 0, 1, 1); - public static readonly GameAttributeB Gizmo_Has_Been_Operated = new GameAttributeB(475, 0, -1, 1, 1, "", "", "Gizmo_Has_Been_Operated", GameAttributeEncoding.IntMinMax, 4, 0, 1, 1); - public static readonly GameAttributeB Banner_Usable = new GameAttributeB(476, 0, -1, 0, 0, "", "", "Banner_Usable", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Banner_Player_In_Combat = new GameAttributeB(477, 0, -1, 0, 0, "", "", "Banner_Player_In_Combat", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Pet_Owner = new GameAttributeI(478, -1, -1, 0, 0, "", "", "Pet_Owner", GameAttributeEncoding.Int, 222, -1, 8, 4); - public static readonly GameAttributeI Pet_Creator = new GameAttributeI(479, -1, -1, 0, 0, "", "", "Pet_Creator", GameAttributeEncoding.Int, 222, -1, 8, 4); - public static readonly GameAttributeI Pet_Type = new GameAttributeI(480, -1, -1, 0, 0, "", "", "Pet_Type", GameAttributeEncoding.Int, 222, -1, 77, 7); - public static readonly GameAttributeB DropsNoLoot = new GameAttributeB(481, 0, -1, 0, 0, "", "", "DropsNoLoot", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB GrantsNoXP = new GameAttributeB(482, 0, -1, 0, 0, "", "", "GrantsNoXP", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Hireling_Class = new GameAttributeI(483, 0, -1, 0, 0, "", "", "Hireling_Class", GameAttributeEncoding.Int, 222, 0, 4, 3); - public static readonly GameAttributeB Pet_Cannot_Be_Dismissed = new GameAttributeB(486, 0, -1, 0, 0, "", "", "Pet_Cannot_Be_Dismissed", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Is_NPC = new GameAttributeB(487, 0, -1, 1, 1, "", "", "Is_NPC", GameAttributeEncoding.IntMinMax, 222, 0, 1, 1); - public static readonly GameAttributeB NPC_Is_Operatable = new GameAttributeB(488, 0, -1, 1, 1, "", "", "NPC_Is_Operatable", GameAttributeEncoding.IntMinMax, 222, 0, 1, 1); - public static readonly GameAttributeB NPC_Is_Escorting = new GameAttributeB(489, 0, -1, 1, 1, "", "", "NPC_Is_Escorting", GameAttributeEncoding.IntMinMax, 222, 0, 1, 1); - public static readonly GameAttributeB NPC_Has_Interact_Options = new GameAttributeB(490, 0, 12, 1, 1, "", "", "NPC_Has_Interact_Options", GameAttributeEncoding.IntMinMax, 222, 0, 1, 1); - public static readonly GameAttributeI Conversation_Icon = new GameAttributeI(491, -1, -1, 0, 0, "", "", "Conversation_Icon", GameAttributeEncoding.Int, 222, -1, 6, 3); - public static readonly GameAttributeI Conversation_Icon_Override = new GameAttributeI(492, -1, -1, 0, 0, "", "", "Conversation_Icon_Override", GameAttributeEncoding.Int, 222, -1, 6, 3); - public static readonly GameAttributeB Is_Helper = new GameAttributeB(497, 0, -1, 0, 0, "", "", "Is_Helper", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Current_WeaponClass = new GameAttributeI(535, -1, -1, 0, 0, "", "", "Current_WeaponClass", GameAttributeEncoding.Int, 0, -1, 28, 5); - public static readonly GameAttributeB Weapons_Sheathed = new GameAttributeB(536, 0, -1, 0, 0, "", "", "Weapons_Sheathed", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Held_In_OffHand = new GameAttributeB(537, 0, -1, 0, 0, "0", "", "Held_In_OffHand", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB In_Combat = new GameAttributeB(551, 0, -1, 0, 0, "", "", "In_Combat", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB In_Combat_Next_Tick_Check = new GameAttributeB(552, 0, -1, 0, 0, "", "", "In_Combat_Next_Tick_Check", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB In_Conversation = new GameAttributeB(553, 0, -1, 0, 0, "", "", "In_Conversation", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Potion_Dilution_Duration = new GameAttributeI(558, -1, -1, 0, 0, "", "", "Potion_Dilution_Duration", GameAttributeEncoding.Int, 0, -1, 16777214, 24); - public static readonly GameAttributeB Feared = new GameAttributeB(560, 0, -1, 0, 0, "", "", "Feared", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Fear_Immune = new GameAttributeB(561, 0, -1, 0, 0, "", "", "Fear_Immune", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Damage_Type_Override = new GameAttributeI(566, -1, -1, 0, 0, "", "", "Damage_Type_Override", GameAttributeEncoding.Int, 0, -1, 6, 3); - public static readonly GameAttributeB Pet_Dont_Kill_When_Entering_Rifts = new GameAttributeB(570, 0, -1, 0, 0, "", "", "Pet_Dont_Kill_When_Entering_Rifts", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Champion_Ghostly = new GameAttributeB(582, 0, -1, 0, 0, "", "", "Champion_Ghostly", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Base_Element = new GameAttributeI(583, -1, -1, 0, 0, "", "", "Base_Element", GameAttributeEncoding.Int, 0, -1, 7, 4); - public static readonly GameAttributeB Projectile_Reflect_Has_Damage_Cap = new GameAttributeB(588, 0, -1, 0, 0, "", "", "Projectile_Reflect_Has_Damage_Cap", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Buff_Visual_Effect = new GameAttributeB(593, 0, -1, 0, 0, "", "", "Buff_Visual_Effect", GameAttributeEncoding.IntMinMax, 136, 0, 1, 1); - public static readonly GameAttributeB Could_Have_Ragdolled = new GameAttributeB(658, 0, -1, 0, 0, "", "", "Could_Have_Ragdolled", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Scale_Bonus_Is_Immediate = new GameAttributeB(661, 0, -1, 0, 0, "", "", "Scale_Bonus_Is_Immediate", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Deleted_On_Server = new GameAttributeB(662, 0, -1, 0, 0, "", "", "Deleted_On_Server", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Does_No_Damage = new GameAttributeB(664, 0, -1, 0, 0, "", "", "Does_No_Damage", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Does_Fake_Damage = new GameAttributeB(665, 0, -1, 0, 0, "", "", "Does_Fake_Damage", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Blocks_Projectiles = new GameAttributeB(667, 0, -1, 0, 0, "", "", "Blocks_Projectiles", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Frozen = new GameAttributeB(668, 0, -1, 0, 0, "", "", "Frozen", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Uninterruptible = new GameAttributeB(674, 0, -1, 0, 0, "", "", "Uninterruptible", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB CantStartDisplayedPowers = new GameAttributeB(676, 0, -1, 0, 0, "", "", "CantStartDisplayedPowers", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB GizmosIgnoreCantStartDisplayedPowers = new GameAttributeB(677, 0, -1, 0, 0, "", "", "GizmosIgnoreCantStartDisplayedPowers", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB IsRooted = new GameAttributeB(689, 0, -1, 0, 0, "", "", "IsRooted", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Hide_Affixes = new GameAttributeB(694, 0, -1, 0, 0, "", "", "Hide_Affixes", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Rune_A = new GameAttributeI(695, 0, -1, 0, 0, "", "", "Rune_A", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeI Rune_B = new GameAttributeI(696, 0, -1, 0, 0, "", "", "Rune_B", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeI Rune_C = new GameAttributeI(697, 0, -1, 0, 0, "", "", "Rune_C", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeI Rune_D = new GameAttributeI(698, 0, -1, 0, 0, "", "", "Rune_D", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeI Rune_E = new GameAttributeI(699, 0, -1, 0, 0, "", "", "Rune_E", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeB Displays_Team_Effect = new GameAttributeB(708, 0, -1, 0, 0, "", "", "Displays_Team_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Cannot_Be_Added_To_AI_Target_List = new GameAttributeB(709, 0, -1, 0, 0, "", "", "Cannot_Be_Added_To_AI_Target_List", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Immune_To_Charm = new GameAttributeB(711, 0, -1, 0, 0, "", "", "Immune_To_Charm", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Immune_To_Blind = new GameAttributeB(712, 0, -1, 0, 0, "", "", "Immune_To_Blind", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Damage_Shield = new GameAttributeB(713, 0, -1, 0, 0, "", "", "Damage_Shield", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Follow_Target_Type = new GameAttributeI(717, 0, -1, 0, 0, "", "", "Follow_Target_Type", GameAttributeEncoding.Int, 0, 0, 2, 2); - public static readonly GameAttributeB Stealthed = new GameAttributeB(725, 0, -1, 0, 0, "", "", "Stealthed", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI GemQuality = new GameAttributeI(726, 0, -1, 0, 0, "", "", "GemQuality", GameAttributeEncoding.Int, 0, 0, 32, 6); - public static readonly GameAttributeB Attachment_Handled_By_Client = new GameAttributeB(733, 0, -1, 0, 0, "", "", "Attachment_Handled_By_Client", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AI_In_Special_State = new GameAttributeB(734, 0, -1, 0, 0, "", "", "AI_In_Special_State", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AI_Used_Scripted_Spawn_Anim = new GameAttributeB(735, 0, -1, 0, 0, "", "", "AI_Used_Scripted_Spawn_Anim", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AI_Spawned_By_Inactive_Marker = new GameAttributeB(736, 0, -1, 0, 0, "", "", "AI_Spawned_By_Inactive_Marker", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Free_Cast_All = new GameAttributeB(750, 0, -1, 0, 0, "", "", "Free_Cast_All", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Kill_Count_Record = new GameAttributeI(759, 0, -1, 0, 0, "", "", "Kill_Count_Record", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Object_Destruction_Record = new GameAttributeI(760, 0, -1, 0, 0, "", "", "Object_Destruction_Record", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Single_Attack_Record = new GameAttributeI(761, 0, -1, 0, 0, "", "", "Single_Attack_Record", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Environment_Attack_Record = new GameAttributeI(762, 0, -1, 0, 0, "", "", "Environment_Attack_Record", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Nephalem_Glory_Duration_Record = new GameAttributeI(763, 0, -1, 0, 0, "", "", "Nephalem_Glory_Duration_Record", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeB Root_Immune = new GameAttributeB(764, 0, -1, 0, 0, "", "", "Root_Immune", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Stored_Contact_Frame = new GameAttributeI(766, 0, -1, 0, 0, "", "", "Stored_Contact_Frame", GameAttributeEncoding.Int, 0, 0, 4, 3); - public static readonly GameAttributeI Buff_Icon_Count0 = new GameAttributeI(767, 0, -1, 0, 0, "", "", "Buff_Icon_Count0", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count1 = new GameAttributeI(768, 0, -1, 0, 0, "", "", "Buff_Icon_Count1", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count2 = new GameAttributeI(769, 0, -1, 0, 0, "", "", "Buff_Icon_Count2", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count3 = new GameAttributeI(770, 0, -1, 0, 0, "", "", "Buff_Icon_Count3", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count4 = new GameAttributeI(771, 0, -1, 0, 0, "", "", "Buff_Icon_Count4", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count5 = new GameAttributeI(772, 0, -1, 0, 0, "", "", "Buff_Icon_Count5", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count6 = new GameAttributeI(773, 0, -1, 0, 0, "", "", "Buff_Icon_Count6", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count7 = new GameAttributeI(774, 0, -1, 0, 0, "", "", "Buff_Icon_Count7", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count8 = new GameAttributeI(775, 0, -1, 0, 0, "", "", "Buff_Icon_Count8", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count9 = new GameAttributeI(776, 0, -1, 0, 0, "", "", "Buff_Icon_Count9", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count10 = new GameAttributeI(777, 0, -1, 0, 0, "", "", "Buff_Icon_Count10", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count11 = new GameAttributeI(778, 0, -1, 0, 0, "", "", "Buff_Icon_Count11", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count12 = new GameAttributeI(779, 0, -1, 0, 0, "", "", "Buff_Icon_Count12", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count13 = new GameAttributeI(780, 0, -1, 0, 0, "", "", "Buff_Icon_Count13", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count14 = new GameAttributeI(781, 0, -1, 0, 0, "", "", "Buff_Icon_Count14", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count15 = new GameAttributeI(782, 0, -1, 0, 0, "", "", "Buff_Icon_Count15", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count16 = new GameAttributeI(783, 0, -1, 0, 0, "", "", "Buff_Icon_Count16", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count17 = new GameAttributeI(784, 0, -1, 0, 0, "", "", "Buff_Icon_Count17", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count18 = new GameAttributeI(785, 0, -1, 0, 0, "", "", "Buff_Icon_Count18", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count19 = new GameAttributeI(786, 0, -1, 0, 0, "", "", "Buff_Icon_Count19", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count20 = new GameAttributeI(787, 0, -1, 0, 0, "", "", "Buff_Icon_Count20", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count21 = new GameAttributeI(788, 0, -1, 0, 0, "", "", "Buff_Icon_Count21", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count22 = new GameAttributeI(789, 0, -1, 0, 0, "", "", "Buff_Icon_Count22", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count23 = new GameAttributeI(790, 0, -1, 0, 0, "", "", "Buff_Icon_Count23", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count24 = new GameAttributeI(791, 0, -1, 0, 0, "", "", "Buff_Icon_Count24", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count25 = new GameAttributeI(792, 0, -1, 0, 0, "", "", "Buff_Icon_Count25", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count26 = new GameAttributeI(793, 0, -1, 0, 0, "", "", "Buff_Icon_Count26", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count27 = new GameAttributeI(794, 0, -1, 0, 0, "", "", "Buff_Icon_Count27", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count28 = new GameAttributeI(795, 0, -1, 0, 0, "", "", "Buff_Icon_Count28", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count29 = new GameAttributeI(796, 0, -1, 0, 0, "", "", "Buff_Icon_Count29", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count30 = new GameAttributeI(797, 0, -1, 0, 0, "", "", "Buff_Icon_Count30", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeI Buff_Icon_Count31 = new GameAttributeI(798, 0, -1, 0, 0, "", "", "Buff_Icon_Count31", GameAttributeEncoding.Int, 0, 0, 16777215, 24); - public static readonly GameAttributeB Observer = new GameAttributeB(799, 0, -1, 0, 0, "", "", "Observer", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Resurrect_As_Observer = new GameAttributeB(800, 0, -1, 0, 0, "", "", "Resurrect_As_Observer", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Combo_Level = new GameAttributeI(801, 0, -1, 0, 0, "", "", "Combo_Level", GameAttributeEncoding.Int, 0, 0, 3, 2); - public static readonly GameAttributeB Burrowed = new GameAttributeB(803, 0, -1, 0, 0, "", "", "Burrowed", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Corpse_Resurrection_Charges = new GameAttributeI(808, 0, -1, 0, 0, "", "", "Corpse_Resurrection_Charges", GameAttributeEncoding.Int, 0, 0, 15, 4); - public static readonly GameAttributeB Corpse_Resurrection_Disabled = new GameAttributeB(809, 0, -1, 0, 0, "", "", "Corpse_Resurrection_Disabled", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB using_Bossbar = new GameAttributeB(812, 0, -1, 0, 0, "", "", "using_Bossbar", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_0_Visual_Effect = new GameAttributeB(813, 0, -1, 0, 0, "", "", "Power_Buff_0_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_1_Visual_Effect = new GameAttributeB(814, 0, -1, 0, 0, "", "", "Power_Buff_1_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_2_Visual_Effect = new GameAttributeB(815, 0, -1, 0, 0, "", "", "Power_Buff_2_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_3_Visual_Effect = new GameAttributeB(816, 0, -1, 0, 0, "", "", "Power_Buff_3_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_4_Visual_Effect = new GameAttributeB(817, 0, -1, 0, 0, "", "", "Power_Buff_4_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_5_Visual_Effect = new GameAttributeB(818, 0, -1, 0, 0, "", "", "Power_Buff_5_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_6_Visual_Effect = new GameAttributeB(819, 0, -1, 0, 0, "", "", "Power_Buff_6_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_7_Visual_Effect = new GameAttributeB(820, 0, -1, 0, 0, "", "", "Power_Buff_7_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_8_Visual_Effect = new GameAttributeB(821, 0, -1, 0, 0, "", "", "Power_Buff_8_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_9_Visual_Effect = new GameAttributeB(822, 0, -1, 0, 0, "", "", "Power_Buff_9_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_10_Visual_Effect = new GameAttributeB(823, 0, -1, 0, 0, "", "", "Power_Buff_10_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_11_Visual_Effect = new GameAttributeB(824, 0, -1, 0, 0, "", "", "Power_Buff_11_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_12_Visual_Effect = new GameAttributeB(825, 0, -1, 0, 0, "", "", "Power_Buff_12_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_13_Visual_Effect = new GameAttributeB(826, 0, -1, 0, 0, "", "", "Power_Buff_13_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_14_Visual_Effect = new GameAttributeB(827, 0, -1, 0, 0, "", "", "Power_Buff_14_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_15_Visual_Effect = new GameAttributeB(828, 0, -1, 0, 0, "", "", "Power_Buff_15_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_16_Visual_Effect = new GameAttributeB(829, 0, -1, 0, 0, "", "", "Power_Buff_16_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_17_Visual_Effect = new GameAttributeB(830, 0, -1, 0, 0, "", "", "Power_Buff_17_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_18_Visual_Effect = new GameAttributeB(831, 0, -1, 0, 0, "", "", "Power_Buff_18_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_19_Visual_Effect = new GameAttributeB(832, 0, -1, 0, 0, "", "", "Power_Buff_19_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_20_Visual_Effect = new GameAttributeB(833, 0, -1, 0, 0, "", "", "Power_Buff_20_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_21_Visual_Effect = new GameAttributeB(834, 0, -1, 0, 0, "", "", "Power_Buff_21_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_22_Visual_Effect = new GameAttributeB(835, 0, -1, 0, 0, "", "", "Power_Buff_22_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_23_Visual_Effect = new GameAttributeB(836, 0, -1, 0, 0, "", "", "Power_Buff_23_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_24_Visual_Effect = new GameAttributeB(837, 0, -1, 0, 0, "", "", "Power_Buff_24_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_25_Visual_Effect = new GameAttributeB(838, 0, -1, 0, 0, "", "", "Power_Buff_25_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_26_Visual_Effect = new GameAttributeB(839, 0, -1, 0, 0, "", "", "Power_Buff_26_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_27_Visual_Effect = new GameAttributeB(840, 0, -1, 0, 0, "", "", "Power_Buff_27_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_28_Visual_Effect = new GameAttributeB(841, 0, -1, 0, 0, "", "", "Power_Buff_28_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_29_Visual_Effect = new GameAttributeB(842, 0, -1, 0, 0, "", "", "Power_Buff_29_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_30_Visual_Effect = new GameAttributeB(843, 0, -1, 0, 0, "", "", "Power_Buff_30_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_31_Visual_Effect = new GameAttributeB(844, 0, -1, 0, 0, "", "", "Power_Buff_31_Visual_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Busy = new GameAttributeB(846, 0, -1, 0, 0, "", "", "Busy", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Afk = new GameAttributeB(847, 0, -1, 0, 0, "", "", "Afk", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Resource_Degeneration_Prevented = new GameAttributeB(852, 0, -1, 0, 0, "", "", "Resource_Degeneration_Prevented", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Operatable = new GameAttributeB(853, 0, -1, 0, 0, "", "", "Operatable", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Has_Look_Override = new GameAttributeB(854, 0, -1, 0, 0, "", "", "Has_Look_Override", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Disabled = new GameAttributeB(856, 0, -1, 0, 0, "", "", "Disabled", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Skill_Override_Active = new GameAttributeB(858, 0, -1, 0, 0, "", "", "Skill_Override_Active", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Skill_Override_Ended = new GameAttributeB(859, 0, -1, 0, 0, "", "", "Skill_Override_Ended", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Skill_Override_Ended_Active = new GameAttributeB(860, 0, -1, 0, 0, "", "", "Skill_Override_Ended_Active", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Is_Power_Proxy = new GameAttributeB(861, 0, -1, 0, 0, "", "", "Is_Power_Proxy", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Force_No_Death_Animation = new GameAttributeB(862, 0, -1, 0, 0, "", "", "Force_No_Death_Animation", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Player_WeaponClass_Anim_Override = new GameAttributeI(863, -1, -1, 0, 0, "", "", "Player_WeaponClass_Anim_Override", GameAttributeEncoding.Int, 0, -1, 28, 5); - public static readonly GameAttributeB Operatable_Story_Gizmo = new GameAttributeB(864, 0, -1, 0, 0, "", "", "Operatable_Story_Gizmo", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_0_Visual_Effect_None = new GameAttributeB(865, 0, -1, 0, 0, "", "", "Power_Buff_0_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_0_Visual_Effect_A = new GameAttributeB(866, 0, -1, 0, 0, "", "", "Power_Buff_0_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_0_Visual_Effect_B = new GameAttributeB(867, 0, -1, 0, 0, "", "", "Power_Buff_0_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_0_Visual_Effect_C = new GameAttributeB(868, 0, -1, 0, 0, "", "", "Power_Buff_0_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_0_Visual_Effect_D = new GameAttributeB(869, 0, -1, 0, 0, "", "", "Power_Buff_0_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_0_Visual_Effect_E = new GameAttributeB(870, 0, -1, 0, 0, "", "", "Power_Buff_0_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_1_Visual_Effect_None = new GameAttributeB(871, 0, -1, 0, 0, "", "", "Power_Buff_1_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_1_Visual_Effect_A = new GameAttributeB(872, 0, -1, 0, 0, "", "", "Power_Buff_1_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_1_Visual_Effect_B = new GameAttributeB(873, 0, -1, 0, 0, "", "", "Power_Buff_1_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_1_Visual_Effect_C = new GameAttributeB(874, 0, -1, 0, 0, "", "", "Power_Buff_1_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_1_Visual_Effect_D = new GameAttributeB(875, 0, -1, 0, 0, "", "", "Power_Buff_1_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_1_Visual_Effect_E = new GameAttributeB(876, 0, -1, 0, 0, "", "", "Power_Buff_1_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_2_Visual_Effect_None = new GameAttributeB(877, 0, -1, 0, 0, "", "", "Power_Buff_2_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_2_Visual_Effect_A = new GameAttributeB(878, 0, -1, 0, 0, "", "", "Power_Buff_2_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_2_Visual_Effect_B = new GameAttributeB(879, 0, -1, 0, 0, "", "", "Power_Buff_2_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_2_Visual_Effect_C = new GameAttributeB(880, 0, -1, 0, 0, "", "", "Power_Buff_2_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_2_Visual_Effect_D = new GameAttributeB(881, 0, -1, 0, 0, "", "", "Power_Buff_2_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_2_Visual_Effect_E = new GameAttributeB(882, 0, -1, 0, 0, "", "", "Power_Buff_2_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_3_Visual_Effect_None = new GameAttributeB(883, 0, -1, 0, 0, "", "", "Power_Buff_3_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_3_Visual_Effect_A = new GameAttributeB(884, 0, -1, 0, 0, "", "", "Power_Buff_3_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_3_Visual_Effect_B = new GameAttributeB(885, 0, -1, 0, 0, "", "", "Power_Buff_3_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_3_Visual_Effect_C = new GameAttributeB(886, 0, -1, 0, 0, "", "", "Power_Buff_3_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_3_Visual_Effect_D = new GameAttributeB(887, 0, -1, 0, 0, "", "", "Power_Buff_3_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_3_Visual_Effect_E = new GameAttributeB(888, 0, -1, 0, 0, "", "", "Power_Buff_3_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_4_Visual_Effect_None = new GameAttributeB(889, 0, -1, 0, 0, "", "", "Power_Buff_4_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_4_Visual_Effect_A = new GameAttributeB(890, 0, -1, 0, 0, "", "", "Power_Buff_4_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_4_Visual_Effect_B = new GameAttributeB(891, 0, -1, 0, 0, "", "", "Power_Buff_4_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_4_Visual_Effect_C = new GameAttributeB(892, 0, -1, 0, 0, "", "", "Power_Buff_4_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_4_Visual_Effect_D = new GameAttributeB(893, 0, -1, 0, 0, "", "", "Power_Buff_4_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_4_Visual_Effect_E = new GameAttributeB(894, 0, -1, 0, 0, "", "", "Power_Buff_4_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_5_Visual_Effect_None = new GameAttributeB(895, 0, -1, 0, 0, "", "", "Power_Buff_5_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_5_Visual_Effect_A = new GameAttributeB(896, 0, -1, 0, 0, "", "", "Power_Buff_5_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_5_Visual_Effect_B = new GameAttributeB(897, 0, -1, 0, 0, "", "", "Power_Buff_5_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_5_Visual_Effect_C = new GameAttributeB(898, 0, -1, 0, 0, "", "", "Power_Buff_5_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_5_Visual_Effect_D = new GameAttributeB(899, 0, -1, 0, 0, "", "", "Power_Buff_5_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_5_Visual_Effect_E = new GameAttributeB(900, 0, -1, 0, 0, "", "", "Power_Buff_5_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_6_Visual_Effect_None = new GameAttributeB(901, 0, -1, 0, 0, "", "", "Power_Buff_6_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_6_Visual_Effect_A = new GameAttributeB(902, 0, -1, 0, 0, "", "", "Power_Buff_6_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_6_Visual_Effect_B = new GameAttributeB(903, 0, -1, 0, 0, "", "", "Power_Buff_6_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_6_Visual_Effect_C = new GameAttributeB(904, 0, -1, 0, 0, "", "", "Power_Buff_6_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_6_Visual_Effect_D = new GameAttributeB(905, 0, -1, 0, 0, "", "", "Power_Buff_6_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_6_Visual_Effect_E = new GameAttributeB(906, 0, -1, 0, 0, "", "", "Power_Buff_6_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_7_Visual_Effect_None = new GameAttributeB(907, 0, -1, 0, 0, "", "", "Power_Buff_7_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_7_Visual_Effect_A = new GameAttributeB(908, 0, -1, 0, 0, "", "", "Power_Buff_7_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_7_Visual_Effect_B = new GameAttributeB(909, 0, -1, 0, 0, "", "", "Power_Buff_7_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_7_Visual_Effect_C = new GameAttributeB(910, 0, -1, 0, 0, "", "", "Power_Buff_7_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_7_Visual_Effect_D = new GameAttributeB(911, 0, -1, 0, 0, "", "", "Power_Buff_7_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_7_Visual_Effect_E = new GameAttributeB(912, 0, -1, 0, 0, "", "", "Power_Buff_7_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_8_Visual_Effect_None = new GameAttributeB(913, 0, -1, 0, 0, "", "", "Power_Buff_8_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_8_Visual_Effect_A = new GameAttributeB(914, 0, -1, 0, 0, "", "", "Power_Buff_8_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_8_Visual_Effect_B = new GameAttributeB(915, 0, -1, 0, 0, "", "", "Power_Buff_8_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_8_Visual_Effect_C = new GameAttributeB(916, 0, -1, 0, 0, "", "", "Power_Buff_8_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_8_Visual_Effect_D = new GameAttributeB(917, 0, -1, 0, 0, "", "", "Power_Buff_8_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_8_Visual_Effect_E = new GameAttributeB(918, 0, -1, 0, 0, "", "", "Power_Buff_8_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_9_Visual_Effect_None = new GameAttributeB(919, 0, -1, 0, 0, "", "", "Power_Buff_9_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_9_Visual_Effect_A = new GameAttributeB(920, 0, -1, 0, 0, "", "", "Power_Buff_9_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_9_Visual_Effect_B = new GameAttributeB(921, 0, -1, 0, 0, "", "", "Power_Buff_9_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_9_Visual_Effect_C = new GameAttributeB(922, 0, -1, 0, 0, "", "", "Power_Buff_9_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_9_Visual_Effect_D = new GameAttributeB(923, 0, -1, 0, 0, "", "", "Power_Buff_9_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_9_Visual_Effect_E = new GameAttributeB(924, 0, -1, 0, 0, "", "", "Power_Buff_9_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_10_Visual_Effect_None = new GameAttributeB(925, 0, -1, 0, 0, "", "", "Power_Buff_10_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_10_Visual_Effect_A = new GameAttributeB(926, 0, -1, 0, 0, "", "", "Power_Buff_10_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_10_Visual_Effect_B = new GameAttributeB(927, 0, -1, 0, 0, "", "", "Power_Buff_10_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_10_Visual_Effect_C = new GameAttributeB(928, 0, -1, 0, 0, "", "", "Power_Buff_10_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_10_Visual_Effect_D = new GameAttributeB(929, 0, -1, 0, 0, "", "", "Power_Buff_10_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_10_Visual_Effect_E = new GameAttributeB(930, 0, -1, 0, 0, "", "", "Power_Buff_10_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_11_Visual_Effect_None = new GameAttributeB(931, 0, -1, 0, 0, "", "", "Power_Buff_11_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_11_Visual_Effect_A = new GameAttributeB(932, 0, -1, 0, 0, "", "", "Power_Buff_11_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_11_Visual_Effect_B = new GameAttributeB(933, 0, -1, 0, 0, "", "", "Power_Buff_11_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_11_Visual_Effect_C = new GameAttributeB(934, 0, -1, 0, 0, "", "", "Power_Buff_11_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_11_Visual_Effect_D = new GameAttributeB(935, 0, -1, 0, 0, "", "", "Power_Buff_11_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_11_Visual_Effect_E = new GameAttributeB(936, 0, -1, 0, 0, "", "", "Power_Buff_11_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_12_Visual_Effect_None = new GameAttributeB(937, 0, -1, 0, 0, "", "", "Power_Buff_12_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_12_Visual_Effect_A = new GameAttributeB(938, 0, -1, 0, 0, "", "", "Power_Buff_12_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_12_Visual_Effect_B = new GameAttributeB(939, 0, -1, 0, 0, "", "", "Power_Buff_12_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_12_Visual_Effect_C = new GameAttributeB(940, 0, -1, 0, 0, "", "", "Power_Buff_12_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_12_Visual_Effect_D = new GameAttributeB(941, 0, -1, 0, 0, "", "", "Power_Buff_12_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_12_Visual_Effect_E = new GameAttributeB(942, 0, -1, 0, 0, "", "", "Power_Buff_12_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_13_Visual_Effect_None = new GameAttributeB(943, 0, -1, 0, 0, "", "", "Power_Buff_13_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_13_Visual_Effect_A = new GameAttributeB(944, 0, -1, 0, 0, "", "", "Power_Buff_13_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_13_Visual_Effect_B = new GameAttributeB(945, 0, -1, 0, 0, "", "", "Power_Buff_13_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_13_Visual_Effect_C = new GameAttributeB(946, 0, -1, 0, 0, "", "", "Power_Buff_13_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_13_Visual_Effect_D = new GameAttributeB(947, 0, -1, 0, 0, "", "", "Power_Buff_13_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_13_Visual_Effect_E = new GameAttributeB(948, 0, -1, 0, 0, "", "", "Power_Buff_13_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_14_Visual_Effect_None = new GameAttributeB(949, 0, -1, 0, 0, "", "", "Power_Buff_14_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_14_Visual_Effect_A = new GameAttributeB(950, 0, -1, 0, 0, "", "", "Power_Buff_14_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_14_Visual_Effect_B = new GameAttributeB(951, 0, -1, 0, 0, "", "", "Power_Buff_14_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_14_Visual_Effect_C = new GameAttributeB(952, 0, -1, 0, 0, "", "", "Power_Buff_14_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_14_Visual_Effect_D = new GameAttributeB(953, 0, -1, 0, 0, "", "", "Power_Buff_14_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_14_Visual_Effect_E = new GameAttributeB(954, 0, -1, 0, 0, "", "", "Power_Buff_14_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_15_Visual_Effect_None = new GameAttributeB(955, 0, -1, 0, 0, "", "", "Power_Buff_15_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_15_Visual_Effect_A = new GameAttributeB(956, 0, -1, 0, 0, "", "", "Power_Buff_15_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_15_Visual_Effect_B = new GameAttributeB(957, 0, -1, 0, 0, "", "", "Power_Buff_15_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_15_Visual_Effect_C = new GameAttributeB(958, 0, -1, 0, 0, "", "", "Power_Buff_15_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_15_Visual_Effect_D = new GameAttributeB(959, 0, -1, 0, 0, "", "", "Power_Buff_15_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_15_Visual_Effect_E = new GameAttributeB(960, 0, -1, 0, 0, "", "", "Power_Buff_15_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_16_Visual_Effect_None = new GameAttributeB(961, 0, -1, 0, 0, "", "", "Power_Buff_16_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_16_Visual_Effect_A = new GameAttributeB(962, 0, -1, 0, 0, "", "", "Power_Buff_16_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_16_Visual_Effect_B = new GameAttributeB(963, 0, -1, 0, 0, "", "", "Power_Buff_16_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_16_Visual_Effect_C = new GameAttributeB(964, 0, -1, 0, 0, "", "", "Power_Buff_16_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_16_Visual_Effect_D = new GameAttributeB(965, 0, -1, 0, 0, "", "", "Power_Buff_16_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_16_Visual_Effect_E = new GameAttributeB(966, 0, -1, 0, 0, "", "", "Power_Buff_16_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_17_Visual_Effect_None = new GameAttributeB(967, 0, -1, 0, 0, "", "", "Power_Buff_17_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_17_Visual_Effect_A = new GameAttributeB(968, 0, -1, 0, 0, "", "", "Power_Buff_17_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_17_Visual_Effect_B = new GameAttributeB(969, 0, -1, 0, 0, "", "", "Power_Buff_17_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_17_Visual_Effect_C = new GameAttributeB(970, 0, -1, 0, 0, "", "", "Power_Buff_17_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_17_Visual_Effect_D = new GameAttributeB(971, 0, -1, 0, 0, "", "", "Power_Buff_17_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_17_Visual_Effect_E = new GameAttributeB(972, 0, -1, 0, 0, "", "", "Power_Buff_17_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_18_Visual_Effect_None = new GameAttributeB(973, 0, -1, 0, 0, "", "", "Power_Buff_18_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_18_Visual_Effect_A = new GameAttributeB(974, 0, -1, 0, 0, "", "", "Power_Buff_18_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_18_Visual_Effect_B = new GameAttributeB(975, 0, -1, 0, 0, "", "", "Power_Buff_18_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_18_Visual_Effect_C = new GameAttributeB(976, 0, -1, 0, 0, "", "", "Power_Buff_18_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_18_Visual_Effect_D = new GameAttributeB(977, 0, -1, 0, 0, "", "", "Power_Buff_18_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_18_Visual_Effect_E = new GameAttributeB(978, 0, -1, 0, 0, "", "", "Power_Buff_18_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_19_Visual_Effect_None = new GameAttributeB(979, 0, -1, 0, 0, "", "", "Power_Buff_19_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_19_Visual_Effect_A = new GameAttributeB(980, 0, -1, 0, 0, "", "", "Power_Buff_19_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_19_Visual_Effect_B = new GameAttributeB(981, 0, -1, 0, 0, "", "", "Power_Buff_19_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_19_Visual_Effect_C = new GameAttributeB(982, 0, -1, 0, 0, "", "", "Power_Buff_19_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_19_Visual_Effect_D = new GameAttributeB(983, 0, -1, 0, 0, "", "", "Power_Buff_19_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_19_Visual_Effect_E = new GameAttributeB(984, 0, -1, 0, 0, "", "", "Power_Buff_19_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_20_Visual_Effect_None = new GameAttributeB(985, 0, -1, 0, 0, "", "", "Power_Buff_20_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_20_Visual_Effect_A = new GameAttributeB(986, 0, -1, 0, 0, "", "", "Power_Buff_20_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_20_Visual_Effect_B = new GameAttributeB(987, 0, -1, 0, 0, "", "", "Power_Buff_20_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_20_Visual_Effect_C = new GameAttributeB(988, 0, -1, 0, 0, "", "", "Power_Buff_20_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_20_Visual_Effect_D = new GameAttributeB(989, 0, -1, 0, 0, "", "", "Power_Buff_20_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_20_Visual_Effect_E = new GameAttributeB(990, 0, -1, 0, 0, "", "", "Power_Buff_20_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_21_Visual_Effect_None = new GameAttributeB(991, 0, -1, 0, 0, "", "", "Power_Buff_21_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_21_Visual_Effect_A = new GameAttributeB(992, 0, -1, 0, 0, "", "", "Power_Buff_21_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_21_Visual_Effect_B = new GameAttributeB(993, 0, -1, 0, 0, "", "", "Power_Buff_21_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_21_Visual_Effect_C = new GameAttributeB(994, 0, -1, 0, 0, "", "", "Power_Buff_21_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_21_Visual_Effect_D = new GameAttributeB(995, 0, -1, 0, 0, "", "", "Power_Buff_21_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_21_Visual_Effect_E = new GameAttributeB(996, 0, -1, 0, 0, "", "", "Power_Buff_21_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_22_Visual_Effect_None = new GameAttributeB(997, 0, -1, 0, 0, "", "", "Power_Buff_22_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_22_Visual_Effect_A = new GameAttributeB(998, 0, -1, 0, 0, "", "", "Power_Buff_22_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_22_Visual_Effect_B = new GameAttributeB(999, 0, -1, 0, 0, "", "", "Power_Buff_22_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_22_Visual_Effect_C = new GameAttributeB(1000, 0, -1, 0, 0, "", "", "Power_Buff_22_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_22_Visual_Effect_D = new GameAttributeB(1001, 0, -1, 0, 0, "", "", "Power_Buff_22_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_22_Visual_Effect_E = new GameAttributeB(1002, 0, -1, 0, 0, "", "", "Power_Buff_22_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_23_Visual_Effect_None = new GameAttributeB(1003, 0, -1, 0, 0, "", "", "Power_Buff_23_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_23_Visual_Effect_A = new GameAttributeB(1004, 0, -1, 0, 0, "", "", "Power_Buff_23_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_23_Visual_Effect_B = new GameAttributeB(1005, 0, -1, 0, 0, "", "", "Power_Buff_23_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_23_Visual_Effect_C = new GameAttributeB(1006, 0, -1, 0, 0, "", "", "Power_Buff_23_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_23_Visual_Effect_D = new GameAttributeB(1007, 0, -1, 0, 0, "", "", "Power_Buff_23_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_23_Visual_Effect_E = new GameAttributeB(1008, 0, -1, 0, 0, "", "", "Power_Buff_23_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_24_Visual_Effect_None = new GameAttributeB(1009, 0, -1, 0, 0, "", "", "Power_Buff_24_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_24_Visual_Effect_A = new GameAttributeB(1010, 0, -1, 0, 0, "", "", "Power_Buff_24_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_24_Visual_Effect_B = new GameAttributeB(1011, 0, -1, 0, 0, "", "", "Power_Buff_24_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_24_Visual_Effect_C = new GameAttributeB(1012, 0, -1, 0, 0, "", "", "Power_Buff_24_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_24_Visual_Effect_D = new GameAttributeB(1013, 0, -1, 0, 0, "", "", "Power_Buff_24_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_24_Visual_Effect_E = new GameAttributeB(1014, 0, -1, 0, 0, "", "", "Power_Buff_24_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_25_Visual_Effect_None = new GameAttributeB(1015, 0, -1, 0, 0, "", "", "Power_Buff_25_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_25_Visual_Effect_A = new GameAttributeB(1016, 0, -1, 0, 0, "", "", "Power_Buff_25_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_25_Visual_Effect_B = new GameAttributeB(1017, 0, -1, 0, 0, "", "", "Power_Buff_25_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_25_Visual_Effect_C = new GameAttributeB(1018, 0, -1, 0, 0, "", "", "Power_Buff_25_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_25_Visual_Effect_D = new GameAttributeB(1019, 0, -1, 0, 0, "", "", "Power_Buff_25_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_25_Visual_Effect_E = new GameAttributeB(1020, 0, -1, 0, 0, "", "", "Power_Buff_25_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_26_Visual_Effect_None = new GameAttributeB(1021, 0, -1, 0, 0, "", "", "Power_Buff_26_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_26_Visual_Effect_A = new GameAttributeB(1022, 0, -1, 0, 0, "", "", "Power_Buff_26_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_26_Visual_Effect_B = new GameAttributeB(1023, 0, -1, 0, 0, "", "", "Power_Buff_26_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_26_Visual_Effect_C = new GameAttributeB(1024, 0, -1, 0, 0, "", "", "Power_Buff_26_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_26_Visual_Effect_D = new GameAttributeB(1025, 0, -1, 0, 0, "", "", "Power_Buff_26_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_26_Visual_Effect_E = new GameAttributeB(1026, 0, -1, 0, 0, "", "", "Power_Buff_26_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_27_Visual_Effect_None = new GameAttributeB(1027, 0, -1, 0, 0, "", "", "Power_Buff_27_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_27_Visual_Effect_A = new GameAttributeB(1028, 0, -1, 0, 0, "", "", "Power_Buff_27_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_27_Visual_Effect_B = new GameAttributeB(1029, 0, -1, 0, 0, "", "", "Power_Buff_27_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_27_Visual_Effect_C = new GameAttributeB(1030, 0, -1, 0, 0, "", "", "Power_Buff_27_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_27_Visual_Effect_D = new GameAttributeB(1031, 0, -1, 0, 0, "", "", "Power_Buff_27_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_27_Visual_Effect_E = new GameAttributeB(1032, 0, -1, 0, 0, "", "", "Power_Buff_27_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_28_Visual_Effect_None = new GameAttributeB(1033, 0, -1, 0, 0, "", "", "Power_Buff_28_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_28_Visual_Effect_A = new GameAttributeB(1034, 0, -1, 0, 0, "", "", "Power_Buff_28_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_28_Visual_Effect_B = new GameAttributeB(1035, 0, -1, 0, 0, "", "", "Power_Buff_28_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_28_Visual_Effect_C = new GameAttributeB(1036, 0, -1, 0, 0, "", "", "Power_Buff_28_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_28_Visual_Effect_D = new GameAttributeB(1037, 0, -1, 0, 0, "", "", "Power_Buff_28_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_28_Visual_Effect_E = new GameAttributeB(1038, 0, -1, 0, 0, "", "", "Power_Buff_28_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_29_Visual_Effect_None = new GameAttributeB(1039, 0, -1, 0, 0, "", "", "Power_Buff_29_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_29_Visual_Effect_A = new GameAttributeB(1040, 0, -1, 0, 0, "", "", "Power_Buff_29_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_29_Visual_Effect_B = new GameAttributeB(1041, 0, -1, 0, 0, "", "", "Power_Buff_29_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_29_Visual_Effect_C = new GameAttributeB(1042, 0, -1, 0, 0, "", "", "Power_Buff_29_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_29_Visual_Effect_D = new GameAttributeB(1043, 0, -1, 0, 0, "", "", "Power_Buff_29_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_29_Visual_Effect_E = new GameAttributeB(1044, 0, -1, 0, 0, "", "", "Power_Buff_29_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_30_Visual_Effect_None = new GameAttributeB(1045, 0, -1, 0, 0, "", "", "Power_Buff_30_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_30_Visual_Effect_A = new GameAttributeB(1046, 0, -1, 0, 0, "", "", "Power_Buff_30_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_30_Visual_Effect_B = new GameAttributeB(1047, 0, -1, 0, 0, "", "", "Power_Buff_30_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_30_Visual_Effect_C = new GameAttributeB(1048, 0, -1, 0, 0, "", "", "Power_Buff_30_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_30_Visual_Effect_D = new GameAttributeB(1049, 0, -1, 0, 0, "", "", "Power_Buff_30_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_30_Visual_Effect_E = new GameAttributeB(1050, 0, -1, 0, 0, "", "", "Power_Buff_30_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_31_Visual_Effect_None = new GameAttributeB(1051, 0, -1, 0, 0, "", "", "Power_Buff_31_Visual_Effect_None", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_31_Visual_Effect_A = new GameAttributeB(1052, 0, -1, 0, 0, "", "", "Power_Buff_31_Visual_Effect_A", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_31_Visual_Effect_B = new GameAttributeB(1053, 0, -1, 0, 0, "", "", "Power_Buff_31_Visual_Effect_B", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_31_Visual_Effect_C = new GameAttributeB(1054, 0, -1, 0, 0, "", "", "Power_Buff_31_Visual_Effect_C", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_31_Visual_Effect_D = new GameAttributeB(1055, 0, -1, 0, 0, "", "", "Power_Buff_31_Visual_Effect_D", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Buff_31_Visual_Effect_E = new GameAttributeB(1056, 0, -1, 0, 0, "", "", "Power_Buff_31_Visual_Effect_E", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Summoning_Machine_Num_Casters = new GameAttributeI(1060, 0, -1, 0, 0, "", "", "Summoning_Machine_Num_Casters", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeI Summoning_Machine_Spawn_Count = new GameAttributeI(1061, 0, -1, 0, 0, "", "", "Summoning_Machine_Spawn_Count", GameAttributeEncoding.Int, 0, 0, 4095, 12); - public static readonly GameAttributeI Summoning_Machine_Spawn_Team = new GameAttributeI(1063, -1, -1, 0, 0, "", "", "Summoning_Machine_Spawn_Team", GameAttributeEncoding.Int, 0, -1, 23, 5); - public static readonly GameAttributeB Attack_Slow = new GameAttributeB(1069, 0, -1, 0, 0, "", "", "Attack_Slow", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Power_Disabled = new GameAttributeB(1070, 0, -1, 0, 0, "", "", "Power_Disabled", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Weapon_Effect_Override = new GameAttributeI(1071, 0, -1, 0, 0, "", "", "Weapon_Effect_Override", GameAttributeEncoding.Int, 0, 0, 14, 4); - public static readonly GameAttributeB Uses_PvP_Power_Tags = new GameAttributeB(1073, 0, -1, 0, 0, "", "", "Uses_PvP_Power_Tags", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Trait = new GameAttributeI(1074, 0, -1, 0, 0, "", "", "Trait", GameAttributeEncoding.Int, 0, -1, 30, 5); - public static readonly GameAttributeB Power_Saved_Attribute = new GameAttributeB(1078, 0, -1, 0, 0, "", "", "Power_Saved_Attribute", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Looping_Animation_Suppress_Item_Tooltips = new GameAttributeB(1082, 0, -1, 0, 0, "", "", "Looping_Animation_Suppress_Item_Tooltips", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB No_Health_Drop = new GameAttributeB(1097, 0, -1, 0, 0, "", "", "No_Health_Drop", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Leader = new GameAttributeB(1098, 0, -1, 0, 0, "", "", "Leader", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB IsContentRestrictedActor = new GameAttributeB(1099, 0, -1, 0, 0, "", "", "IsContentRestrictedActor", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB InBossEncounter = new GameAttributeB(1100, 0, -1, 0, 0, "", "", "InBossEncounter", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB God = new GameAttributeB(1101, 0, -1, 0, 0, "", "", "God", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AllowSkillChanges = new GameAttributeB(1102, 0, -1, 0, 0, "", "", "AllowSkillChanges", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB MinimapActive = new GameAttributeB(1103, 0, -1, 1, 1, "", "", "MinimapActive", GameAttributeEncoding.IntMinMax, 31, 0, 1, 1); - public static readonly GameAttributeB MinimapDisableArrow = new GameAttributeB(1105, 0, -1, 0, 0, "", "", "MinimapDisableArrow", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Weapons_Hidden = new GameAttributeB(1109, 0, -1, 0, 0, "", "", "Weapons_Hidden", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Main_Hand_Weapon_Hidden = new GameAttributeB(1110, 0, -1, 0, 0, "", "", "Main_Hand_Weapon_Hidden", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Off_Hand_Weapon_Hidden = new GameAttributeB(1111, 0, -1, 0, 0, "", "", "Off_Hand_Weapon_Hidden", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Actor_Updates_Attributes_From_Owner = new GameAttributeB(1112, 0, -1, 0, 0, "", "", "Actor_Updates_Attributes_From_Owner", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB CannotDieDuring = new GameAttributeB(1139, 0, -1, 0, 0, "", "", "CannotDieDuring", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Item_Indestructible = new GameAttributeB(1215, 0, -1, 0, 0, "", "", "Item_Indestructible", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Player_All_Items_Indestructible = new GameAttributeB(1216, 0, -1, 0, 0, "", "", "Player_All_Items_Indestructible", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Waiting_To_Accept_Resurrection = new GameAttributeB(1218, 0, -1, 0, 0, "", "", "Waiting_To_Accept_Resurrection", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Ghosted = new GameAttributeB(1219, 0, -1, 0, 0, "", "", "Ghosted", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Special_Inventory_Index = new GameAttributeI(1221, -1, -1, 0, 0, "", "", "Special_Inventory_Index", GameAttributeEncoding.Int, 0, -1, 31, 6); - public static readonly GameAttributeB Never_Deactivates = new GameAttributeB(1259, 0, -1, 0, 0, "", "", "Never_Deactivates", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Deactivate_Lure = new GameAttributeB(1108, 0, -1, 0, 0, "", "", "DeactivateLure", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Account_Under_Review = new GameAttributeB(1260, 0, -1, 0, 0, "", "", "Account_Under_Review", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Projectile_Uncapped_Lifetime = new GameAttributeB(1262, 0, -1, 0, 0, "", "", "Projectile_Uncapped_Lifetime", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI PVP_Rank = new GameAttributeI(1274, 0, -1, 0, 0, "", "", "PVP_Rank", GameAttributeEncoding.Int, 0, -1, 100, 7); - public static readonly GameAttributeI PVP_Level_Equalizer_Level = new GameAttributeI(1284, 0, -1, 0, 0, "", "", "PVP_Level_Equalizer_Level", GameAttributeEncoding.Int, 0, -1, 70, 7); - public static readonly GameAttributeB Is_Temporary_Lure = new GameAttributeB(1285, 1, -1, 0, 0, "", "", "Is_Temporary_Lure", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Ignore_Lure = new GameAttributeB(1286, 0, -1, 0, 0, "", "", "Ignore_Lure", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Elite_Engaged = new GameAttributeB(1288, 0, -1, 0, 0, "", "", "Elite_Engaged", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Charmed = new GameAttributeB(1299, 0, -1, 0, 0, "", "", "Charmed", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Taunted = new GameAttributeB(1300, 0, -1, 0, 0, "", "", "Taunted", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Dueling = new GameAttributeB(1301, 0, -1, 0, 0, "", "", "Dueling", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB PVP_Player_Revealed_On_Map = new GameAttributeB(1302, 0, -1, 0, 0, "", "", "PVP_Player_Revealed_On_Map", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Received_Seasonal_Legendary = new GameAttributeB(1305, 0, -1, 0, 0, "", "", "Received_Seasonal_Legendary", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Has_Dropped_Special_loot = new GameAttributeB(1306, 0, -1, 0, 0, "", "", "Has_Dropped_Special_loot", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Scroll_Buff = new GameAttributeB(1307, 0, -1, 0, 0, "", "", "Scroll_Buff", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Buff_Exclusive_Type_Active = new GameAttributeB(1308, 0, -1, 0, 0, "", "", "Buff_Exclusive_Type_Active", GameAttributeEncoding.IntMinMax, 136, 0, 1, 1); - public static readonly GameAttributeB In_Combat_With_Player = new GameAttributeB(1309, 0, -1, 0, 0, "", "", "In_Combat_With_Player", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Allow_2H_And_Shield = new GameAttributeB(1312, 0, -1, 0, 0, "", "", "Allow_2H_And_Shield", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Item_Is_BOE = new GameAttributeB(1321, 0, -1, 0, 0, "", "", "Item_Is_BOE", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AlwaysShowFloatingNumbers = new GameAttributeB(1333, 0, -1, 0, 0, "", "", "AlwaysShowFloatingNumbers", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Supress_Thorns_Effect = new GameAttributeB(1335, 0, -1, 0, 0, "", "", "Supress_Thorns_Effect", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Force_Gripped = new GameAttributeB(1340, 0, -1, 0, 0, "", "", "Force_Gripped", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Rune_A_Override = new GameAttributeI(1347, 0, -1, 0, 0, "", "", "Rune_A_Override", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeI Rune_B_Override = new GameAttributeI(1348, 0, -1, 0, 0, "", "", "Rune_B_Override", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeI Rune_C_Override = new GameAttributeI(1349, 0, -1, 0, 0, "", "", "Rune_C_Override", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeI Rune_D_Override = new GameAttributeI(1350, 0, -1, 0, 0, "", "", "Rune_D_Override", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeI Rune_E_Override = new GameAttributeI(1351, 0, -1, 0, 0, "", "", "Rune_E_Override", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeB Item_Equipped_But_Disabled = new GameAttributeB(1357, 0, -1, 0, 0, "", "", "Item_Equipped_But_Disabled", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Item_Equipped_But_Disabled_Duplicate_Legendary = new GameAttributeB(1358, 0, -1, 0, 0, "", "", "Item_Equipped_But_Disabled_Duplicate_Legendary", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Attribute_Projectile_Pass_Through = new GameAttributeB(1359, 0, -1, 0, 0, "", "", "Attribute_Projectile_Pass_Through", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Attribute_Set_Item_Discount = new GameAttributeI(1360, 0, -1, 0, 0, "", "", "Attribute_Set_Item_Discount", GameAttributeEncoding.Int, 0, 0, 255, 8); - public static readonly GameAttributeB Has_Infinite_Shrine_Buffs = new GameAttributeB(1363, 0, -1, 0, 0, "", "", "Has_Infinite_Shrine_Buffs", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Dont_Update_Camera_While_Attached = new GameAttributeB(1366, 0, -1, 0, 0, "", "", "Dont_Update_Camera_While_Attached", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Boost_TC_Index = new GameAttributeI(1368, 0, -1, 0, 0, "", "", "Boost_TC_Index", GameAttributeEncoding.Int, 0, 0, 31, 5); - public static readonly GameAttributeB Bounty_Objective = new GameAttributeB(1382, 0, -1, 0, 0, "", "", "Bounty_Objective", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Illusion = new GameAttributeB(1383, 0, -1, 0, 0, "", "", "Illusion", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Prevent_Evade_During = new GameAttributeB(1385, 0, -1, 0, 0, "", "", "Prevent_Evade_During", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Heavens_Fury_Attacker = new GameAttributeI(1388, -1, -1, 0, 0, "", "", "Heavens_Fury_Attacker", GameAttributeEncoding.Int, 0, -1, 7, 4); - public static readonly GameAttributeB Resurrected = new GameAttributeB(1393, 0, -1, 0, 0, "", "", "Resurrected", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Movement_Destroys_Waller_Walls = new GameAttributeB(1396, 0, -1, 0, 0, "", "", "Movement_Destroys_Waller_Walls", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Mail_Flag_Icon = new GameAttributeB(1397, 0, -1, 0, 0, "", "", "Mail_Flag_Icon", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Is_Loot_Run_Boss = new GameAttributeB(1400, 0, -1, 0, 0, "", "", "Is_Loot_Run_Boss", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Item_Console_Max_Level = new GameAttributeI(1404, 0, -1, 0, 0, "0", "", "Item_Console_Max_Level", GameAttributeEncoding.Int, 0, 0, 70, 7); - public static readonly GameAttributeB Console_Promo_Item = new GameAttributeB(1405, 0, -1, 0, 0, "", "", "Console_Promo_Item", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Double_BloodShards = new GameAttributeB(1406, 0, -1, 0, 0, "", "", "Double_BloodShards", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Double_BountyBags = new GameAttributeB(1407, 0, -1, 0, 0, "", "", "Double_BountyBags", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Item_Ignores_Pickup_Radius_For_Pickup = new GameAttributeB(1411, 0, -1, 0, 0, "", "", "Item_Ignores_Pickup_Radius_For_Pickup", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Hunter = new GameAttributeB(1412, 0, -1, 0, 0, "", "", "Hunter", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Participating_In_Tiered_Loot_Run = new GameAttributeB(1413, 0, -1, 0, 0, "", "", "Participating_In_Tiered_Loot_Run", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI HQ_Hot_Cold_State = new GameAttributeI(1425, -1, -1, 0, 0, "", "", "HQ_Hot_Cold_State", GameAttributeEncoding.Int, 0, -1, 2, 2); - public static readonly GameAttributeB Debug_Movement_Type = new GameAttributeB(1428, 0, -1, 0, 0, "", "", "Debug_Movement_Type", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeI Stash_Tabs_Purchased_With_Gold = new GameAttributeI(1438, 0, -1, 0, 0, "", "", "Stash_Tabs_Purchased_With_Gold", GameAttributeEncoding.Int, 0, 0, 5, 3); - public static readonly GameAttributeB Skill_Button_Flash = new GameAttributeB(1440, 0, -1, 0, 0, "", "", "Skill_Button_Flash", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Skill_Button_Active_Glow = new GameAttributeB(1445, 0, -1, 0, 0, "", "", "Skill_Button_Active_Glow", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Participating_In_Set_Dungeon = new GameAttributeB(1446, 0, -1, 0, 0, "", "", "Participating_In_Set_Dungeon", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB In_Set_Dungeon_World = new GameAttributeB(1450, 0, -1, 0, 0, "", "", "In_Set_Dungeon_World", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Summoned_By_Autocast = new GameAttributeB(1455, 0, -1, 0, 0, "", "", "Summoned_By_Autocast", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Necromancer_Corpse_Free_Casting = new GameAttributeB(1462, 0, -1, 0, 0, "", "", "Necromancer_Corpse_Free_Casting", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Weekly_Challenge_Reward_Icon = new GameAttributeB(1470, 0, -1, 0, 0, "", "", "Weekly_Challenge_Reward_Icon", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Item_Was_Touched_By_Armory = new GameAttributeB(1471, 0, -1, 0, 0, "", "", "Item_Was_Touched_By_Armory", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Item_Was_Touched_By_Armory_Last_Game = new GameAttributeB(1472, 0, -1, 0, 0, "", "", "Item_Was_Touched_By_Armory_Last_Game", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Has_Nfp_Device = new GameAttributeB(1473, 0, -1, 0, 0, "", "", "Has_Nfp_Device", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - - - - public static readonly GameAttributeF Damage_Percent_Bonus_Barbarian = new GameAttributeF(245, 0, -1, 0, 0, "", "", "Damage_Percent_Bonus_Barbarian", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Percent_Bonus_Crusader = new GameAttributeF(246, 0, -1, 0, 0, "", "", "Damage_Percent_Bonus_Crusader", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Percent_Bonus_Demonhunter = new GameAttributeF(247, 0, -1, 0, 0, "", "", "Damage_Percent_Bonus_Demonhunter", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Percent_Bonus_Monk = new GameAttributeF(248, 0, -1, 0, 0, "", "", "Damage_Percent_Bonus_Monk", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Percent_Bonus_Necromancer = new GameAttributeF(249, 0, -1, 0, 0, "", "", "Damage_Percent_Bonus_Necromancer", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF QuestRange = new GameAttributeF(443, -1, -1, 0, 0, "", "", "QuestRange", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Quest_MonsterEffect = new GameAttributeF(453, -1, -1, 0, 0, "", "", "Quest_MonsterEffect", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF StoreSNO = new GameAttributeF(845, 0, -1, 0, 0, "", "", "StoreSNO", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF LastActionTimestamp = new GameAttributeF(849, 0, -1, 0, 0, "", "", "LastActionTimestamp", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PortalNextTime = new GameAttributeF(850, 0, -1, 0, 0, "", "", "PortalNextTime", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF ClientOnlyEffect = new GameAttributeF(1077, -1, -1, 0, 0, "", "", "ClientOnlyEffect", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF UnequippedTime = new GameAttributeF(1137, 1, -1, 0, 0, "", "", "UnequippedTime", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF PowerBonusAttackRadius = new GameAttributeF(1341, 0, -1, 0, 0, "", "", "PowerBonusAttackRadius", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF LinkedDynamicEntranceGUID = new GameAttributeF(1367, 0, -1, 0, 0, "", "", "LinkedDynamicEntranceGUID", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Damage_Done_Reduction_Percent = new GameAttributeF(1065, 0, -1, 0, 0, "", "", "Max(Damage_Done_Reduction_Percent,1)", GameAttributeEncoding.Float16, 0, 0, 0, 16); - - public static readonly GameAttributeB DestroyWhenPathBlocked = new GameAttributeB(368, 0, -1, 0, 0, "", "", "DestroyWhenPathBlocked", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB AlphaAttachments = new GameAttributeB(441, 0, -1, 0, 0, "", "", "AlphaAttachments", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB QueueDeath = new GameAttributeB(675, 0, -1, 0, 0, "", "", "QueueDeath", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB LorePlaying = new GameAttributeB(848, 0, -1, 0, 0, "", "", "LorePlaying", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB ForcedMove = new GameAttributeB(1401, 0, -1, 0, 0, "", "", "ForcedMove", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB ReceivedPrimalWhenUnlocking = new GameAttributeB(1474, 0, -1, 0, 0, "", "", "ReceivedPrimalWhenUnlocking", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB KanaiPowersunlocked = new GameAttributeB(1475, 0, -1, 0, 0, "", "", "KanaiPowersunlocked", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB FourthKanaisCubeSlotunlocked = new GameAttributeB(1476, 0, -1, 0, 0, "", "", "FourthKanai'sCubeSlotunlocked", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Seasononlyitemsunlocked = new GameAttributeB(1477, 0, -1, 0, 0, "", "", "Season-onlyitemsunlocked", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Soul_shards_unlocked = new GameAttributeB(1478, 0, -1, 0, 0, "", "", "Soulshardsunlocked", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Item_was_sanctified = new GameAttributeB(1479, 0, -1, 0, 0, "", "", "Itemwassanctified", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - public static readonly GameAttributeB Sanctified_items_unlocked = new GameAttributeB(1480, 0, -1, 0, 0, "", "", "Sanctifieditemsunlocked", GameAttributeEncoding.IntMinMax, 0, 0, 1, 1); - - public static readonly GameAttributeF Fiil1 = new GameAttributeF(1223, -1, -1, 0, 0, "", "", "Fiil1", GameAttributeEncoding.Float32, 0, 0, 0, 32); - public static readonly GameAttributeF Fiil2 = new GameAttributeF(1224, -1, -1, 0, 0, "", "", "Fiil2", GameAttributeEncoding.Float32, 0, 0, 0, 32); - - //*/ + #region Attributes list + public static readonly GameAttributeF Axe_Bad_Data = new(0, "Axe_Bad_Data"); + public static readonly GameAttributeF Attribute_Timer = new(1, "Attribute_Timer"); + public static readonly GameAttributeF Attribute_Pool = new(2, "Attribute_Pool"); + public static readonly GameAttributeF Death_Count = new(3, "Death_Count"); + public static readonly GameAttributeI DualWield_Hand = new(4, "DualWield_Hand", max: 2, bitCount: 2); + public static readonly GameAttributeI DualWield_Hand_Next = new(5, "DualWield_Hand_Next", max: 2, bitCount: 2); + public static readonly GameAttributeB DualWield_Hands_Swapped = new(6, "DualWield_Hands_Swapped"); + public static readonly GameAttributeF Respawn_Game_Time = new(7, "Respawn_Game_Time"); + public static readonly GameAttributeI Backpack_Slots = new(8, "Backpack_Slots", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, max: 128, bitCount: 8); + public static readonly GameAttributeI Shared_Stash_Slots = new(9, "Shared_Stash_Slots", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, max: 910, bitCount: 10); + public static readonly GameAttributeF Strength = new(10, "Strength", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Dexterity = new(11, "Dexterity", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Intelligence = new(12, "Intelligence", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Vitality = new(13, "Vitality", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Strength_Total = new(14, "Strength_Total", script: "((Strength + Stats_All_Bonus + Strength_Bonus + ((Strength_Item + Cube_Enchanted_Strength_Item) * Core_Attributes_From_Item_Bonus_Multiplier)) * (1 + Strength_Bonus_Percent)) * (1-Strength_Reduction_Percent)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Dexterity_Total = new(15, "Dexterity_Total", script: "((Dexterity + Stats_All_Bonus + Dexterity_Bonus + ((Dexterity_Item + Cube_Enchanted_Dexterity_Item) * Core_Attributes_From_Item_Bonus_Multiplier)) * (1 + Dexterity_Bonus_Percent)) * (1-Dexterity_Reduction_Percent)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Intelligence_Total = new(16, "Intelligence_Total", script: "((Intelligence + Stats_All_Bonus + Intelligence_Bonus + ((Intelligence_Item + Cube_Enchanted_Intelligence_Item) * Core_Attributes_From_Item_Bonus_Multiplier)) * (1 + Intelligence_Bonus_Percent)) * (1-Intelligence_Reduction_Percent)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Vitality_Total = new(17, "Vitality_Total", script: "((Vitality + Stats_All_Bonus + Vitality_Bonus + ((Vitality_Item + Cube_Enchanted_Vitality_Item) * Core_Attributes_From_Item_Bonus_Multiplier)) * (1 + Vitality_Bonus_Percent)) * (1-Vitality_Reduction_Percent)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Strength_Bonus = new(18, "Strength_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Dexterity_Bonus = new(19, "Dexterity_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Intelligence_Bonus = new(20, "Intelligence_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Vitality_Bonus = new(21, "Vitality_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Strength_Bonus_Percent = new(22, "Strength_Bonus_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Dexterity_Bonus_Percent = new(23, "Dexterity_Bonus_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Intelligence_Bonus_Percent = new(24, "Intelligence_Bonus_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Vitality_Bonus_Percent = new(25, "Vitality_Bonus_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Strength_Reduction_Percent = new(26, "Strength_Reduction_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Dexterity_Reduction_Percent = new(27, "Dexterity_Reduction_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Intelligence_Reduction_Percent = new(28, "Intelligence_Reduction_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Vitality_Reduction_Percent = new(29, "Vitality_Reduction_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeI Primary_Damage_Attribute = new(30, "Primary_Damage_Attribute", defaultValue: -1, min: -1, max: 3, bitCount: 3); + public static readonly GameAttributeF Armor = new(31, "Armor", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Armor_Bonus_Percent = new(32, "Armor_Bonus_Percent", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Armor_Item = new(33, "Armor_Item", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Armor_Bonus_Item = new(34, "Armor_Bonus_Item", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Armor_Item_Percent = new(35, "Armor_Item_Percent", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Armor_Item_SubTotal = new(36, "Armor_Item_SubTotal", script: "FLOOR((Armor_Item + Armor_Bonus_Item) * (Armor_Item_Percent + 1))", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Armor_Item_Total = new(37, "Armor_Item_Total", script: "(Armor_Item > 0)?(Max(Armor_Item_SubTotal, 1)):Armor_Item_SubTotal", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Armor_Total = new(38, "Armor_Total", script: "FLOOR((Armor + Armor_Item_Total + Strength_Total + Dexterity_Total) * (Armor_Bonus_Percent + 1))", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Experience_Granted_Hi = new(39, "Experience_Granted_Hi", u5: 1, flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeF Experience_Granted_Low = new(40, "Experience_Granted_Low", u5: 1, flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeI Experience_Next_Hi = new(41, "Experience_Next_Hi", u5: 1, flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeI Experience_Next_Lo = new(42, "Experience_Next_Lo", u5: 1, flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeI Alt_Experience_Next_Hi = new(43, "Alt_Experience_Next_Hi", flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeI Alt_Experience_Next_Lo = new(44, "Alt_Experience_Next_Lo", flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeI Rest_Experience_Hi = new(45, "Rest_Experience_Hi", flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeI Rest_Experience_Lo = new(46, "Rest_Experience_Lo", flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeF Rest_Experience_Bonus_Percent = new(47, "Rest_Experience_Bonus_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeI Gold_Granted = new(48, "Gold_Granted", u5: 1, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeI Gold = new(49, "Gold", u5: 1, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Gold_Find = new(50, "Gold_Find"); + public static readonly GameAttributeF Gold_Find_Uncapped = new(51, "Gold_Find_Uncapped"); + public static readonly GameAttributeF Gold_Find_Handicap = new(52, "Gold_Find_Handicap"); + public static readonly GameAttributeF Gold_Find_Alt_Levels_Total = new(53, "Gold_Find_Alt_Levels_Total", script: "Alt_Level * 0.00"); + public static readonly GameAttributeF Gold_Find_Community_Buff = new(54, "Gold_Find_Community_Buff", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Gold_Find_Potion_Buff = new(55, "Gold_Find_Potion_Buff", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Gold_Find_Total = new(56, "Gold_Find_Total", script: "((1.0 + Gold_Find_Uncapped + Gold_Find_Alt_Levels_Total + Gold_Find + Gold_Find_Community_Buff + Gold_Find_Potion_Buff) * (1.0 + Gold_Find_Handicap))-1.0"); + public static readonly GameAttributeI Level = new(57, "Level", GameAttributeEncoding.IntMinMax, flags: (ReplicationFlags)222, min: -1, max: 99, bitCount: 7); // FIXME: incorrect flags + public static readonly GameAttributeI Level_Cap = new(58, "Level_Cap", GameAttributeEncoding.IntMinMax, flags: ReplicationFlags.PlayerReplicated, min: -1, max: 70, bitCount: 7); + public static readonly GameAttributeI Alt_Level = new(59, "Alt_Level", GameAttributeEncoding.IntMinMax, flags: ReplicationFlags.PlayerReplicated, min: -1, max: 20000, bitCount: 15); + public static readonly GameAttributeF Magic_Find = new(60, "Magic_Find"); + public static readonly GameAttributeF Magic_Find_Uncapped = new(61, "Magic_Find_Uncapped"); + public static readonly GameAttributeF Magic_Find_Handicap = new(62, "Magic_Find_Handicap"); + public static readonly GameAttributeF Magic_Find_Alt_Levels_Total = new(63, "Magic_Find_Alt_Levels_Total", script: "Alt_Level * 0.00"); + public static readonly GameAttributeF Magic_Find_Capped_Subtotal = new(64, "Magic_Find_Capped_Subtotal", script: "Min((Magic_Find_Alt_Levels_Total + Magic_Find), 3.0)"); + public static readonly GameAttributeF Magic_Find_Total = new(65, "Magic_Find_Total", script: "Magic_Find_Uncapped + Magic_Find_Handicap + Magic_Find_Capped_Subtotal"); + public static readonly GameAttributeB Magic_And_Gold_Find_Suppressed = new(66, "Magic_And_Gold_Find_Suppressed"); + public static readonly GameAttributeF Treasure_Find = new(67, "Treasure_Find", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Legendary_Find_Community_Buff = new(68, "Legendary_Find_Community_Buff", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeI Resource_Cost_Reduction_Amount = new(69, "Resource_Cost_Reduction_Amount", min: -4095, max: 16383, bitCount: 15); + public static readonly GameAttributeF Resource_Cost_Reduction_Total = new(70, "Resource_Cost_Reduction_Total", encodingType: GameAttributeEncoding.Float16, script: "Resource_Cost_Reduction_Amount", bitCount: 16); + public static readonly GameAttributeF Resource_Set_Point_Bonus = new(71, "Resource_Set_Point_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Faster_Healing_Percent = new(72, "Faster_Healing_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Spending_Resource_Heals_Percent = new(73, "Spending_Resource_Heals_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Bonus_Healing_Received_Percent = new(74, "Bonus_Healing_Received_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Reduced_Healing_Received_Percent = new(75, "Reduced_Healing_Received_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Healing_Well_Restores_Resource = new(76, "Healing_Well_Restores_Resource"); + public static readonly GameAttributeF Experience_Bonus = new(77, "Experience_Bonus", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Experience_Bonus_Percent = new(78, "Experience_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Experience_Bonus_Percent_Handicap = new(79, "Experience_Bonus_Percent_Handicap", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Experience_Bonus_Percent_Total = new(80, "Experience_Bonus_Percent_Total", script: "Experience_Bonus_Percent * Experience_Bonus_Percent_Handicap"); + public static readonly GameAttributeF Experience_Bonus_No_Penalty = new(81, "Experience_Bonus_No_Penalty", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Health_Globe_Bonus_Chance = new(82, "Health_Globe_Bonus_Chance", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Health_Globe_Bonus_Mult_Chance = new(83, "Health_Globe_Bonus_Mult_Chance", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Powerup_Globe_Bonus_Chance = new(84, "Powerup_Globe_Bonus_Chance", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Powerup_Globe_Bonus_Mult_Chance = new(85, "Powerup_Globe_Bonus_Mult_Chance", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Health_Globe_Bonus_Health = new(86, "Health_Globe_Bonus_Health"); + public static readonly GameAttributeF Increased_Health_From_Globes_Percent = new(87, "Increased_Health_From_Globes_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Increased_Health_From_Globes_Percent_Total = new(88, "Increased_Health_From_Globes_Percent_Total", encodingType: GameAttributeEncoding.Float16Or32, script: "Increased_Health_From_Globes_Percent", bitCount: 0); + public static readonly GameAttributeF Bonus_Health_Percent_Per_Second_From_Globes = new(89, "Bonus_Health_Percent_Per_Second_From_Globes", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Bonus_Health_Percent_Per_Second_From_Globes_Total = new(90, "Bonus_Health_Percent_Per_Second_From_Globes_Total", encodingType: GameAttributeEncoding.Float16, script: "Bonus_Health_Percent_Per_Second_From_Globes", bitCount: 16); + public static readonly GameAttributeF Mana_Gained_From_Globes_Percent = new(91, "Mana_Gained_From_Globes_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Mana_Gained_From_Globes = new(92, "Mana_Gained_From_Globes", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Resistance = new(93, "Resistance", encodingType: GameAttributeEncoding.Float16, flags: (ReplicationFlags)222, bitCount: 16); // FIXME: incorrect flags + public static readonly GameAttributeF Resistance_Percent = new(94, "Resistance_Percent", encodingType: GameAttributeEncoding.Float16, flags: (ReplicationFlags)222, bitCount: 16); // FIXME: incorrect flags + public static readonly GameAttributeF Resistance_Total = new(95, "Resistance_Total", encodingType: GameAttributeEncoding.Float16Or32, script: "(Resistance + Resistance_All#NONE + Resistance_From_Intelligence#NONE) * ((Resistance_Percent_All#NONE + Resistance_Percent + 1))", bitCount: 0); + public static readonly GameAttributeF Resistance_All = new(96, "Resistance_All", encodingType: GameAttributeEncoding.Float16, flags: (ReplicationFlags)222, bitCount: 16); // FIXME: incorrect flags + public static readonly GameAttributeF Resistance_Percent_All = new(97, "Resistance_Percent_All", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Resistance_From_Intelligence = new(98, "Resistance_From_Intelligence", encodingType: GameAttributeEncoding.Float16, script: "(Intelligence_Total * 0.1)", bitCount: 16); + public static readonly GameAttributeF Class_Damage_Reduction_Percent = new(99, "Class_Damage_Reduction_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeI Skill = new(100, "Skill", max: 4095, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 12); + public static readonly GameAttributeI Skill_From_Item = new(101, "Skill_From_Item", encodingType: GameAttributeEncoding.IntMinMax, max: 1, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 1); + public static readonly GameAttributeI Skill_Total = new(102, "Skill_Total", max: 4095, script: "Pin(Skill + Skill_From_Item, 0, 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 12); + public static readonly GameAttributeI TeamID = new(103, "TeamID", encodingType: GameAttributeEncoding.IntMinMax, defaultValue: -1, min: -1, max: 23, u4: 1, u5: 1, flags: (ReplicationFlags)222, bitCount: 5); // FIXME: incorrect flags + public static readonly GameAttributeI Team_Override = new(104, "Team_Override", encodingType: GameAttributeEncoding.IntMinMax, defaultValue: -1, min: -1, max: 23, flags: (ReplicationFlags)222, bitCount: 5); // FIXME: incorrect flags + public static readonly GameAttributeB Invulnerable = new(105, "Invulnerable"); + public static readonly GameAttributeB Loading = new(106, "Loading", flags: (ReplicationFlags)222); // FIXME: incorrect flags + public static readonly GameAttributeF Loading_Player_ACD = new(107, "Loading_Player_ACD", defaultValue: -1); + public static readonly GameAttributeF Loading_Power_SNO = new(108, "Loading_Power_SNO", defaultValue: -1); + public static readonly GameAttributeF Loading_Anim_Tag = new(109, "Loading_Anim_Tag", defaultValue: -1); + public static readonly GameAttributeB Loading_NewGame = new(110, "Loading_NewGame"); + public static readonly GameAttributeB Auto_Porting_To_Save_Point = new(111, "Auto_Porting_To_Save_Point"); + public static readonly GameAttributeB No_Damage = new(112, "No_Damage"); + public static readonly GameAttributeB No_AutoPickup = new(113, "No_AutoPickup"); + public static readonly GameAttributeF Light_Radius_Percent_Bonus = new(114, "Light_Radius_Percent_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Hitpoints_Cur = new(115, "Hitpoints_Cur", script: "Min(Hitpoints_Cur.Agg, Hitpoints_Max_Total)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Hitpoints_Factor_Level = new(116, "Hitpoints_Factor_Level", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Hitpoints_Factor_Vitality = new(117, "Hitpoints_Factor_Vitality", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Hitpoints_Total_From_Vitality = new(118, "Hitpoints_Total_From_Vitality", encodingType: GameAttributeEncoding.Float16Or32, script: "Vitality_Total * Hitpoints_Factor_Vitality", bitCount: 0); + public static readonly GameAttributeF Hitpoints_Total_From_Level = new(119, "Hitpoints_Total_From_Level", encodingType: GameAttributeEncoding.Float16Or32, script: "(Level-1) * Hitpoints_Factor_Level", bitCount: 0); + public static readonly GameAttributeF Hitpoints_Granted = new(120, "Hitpoints_Granted", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeI Hitpoints_Granted_Duration = new(121, "Hitpoints_Granted_Duration", max: 16777215, bitCount: 24); + public static readonly GameAttributeF Hitpoints_Max = new(122, "Hitpoints_Max", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Hitpoints_Max_Bonus = new(123, "Hitpoints_Max_Bonus", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Hitpoints_Max_Total = new(124, "Hitpoints_Max_Total", script: "Max((Hitpoints_Max + Hitpoints_Total_From_Level + Hitpoints_Total_From_Vitality + Hitpoints_Max_Bonus) * (Hitpoints_Max_Percent_Bonus + Hitpoints_Max_Percent_Bonus_Item + 1) * (Hitpoints_Max_Percent_Bonus_Multiplicative), 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Hitpoints_Percent = new(125, "Hitpoints_Percent", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Hitpoints_Regen_Per_Second = new(126, "Hitpoints_Regen_Per_Second", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Hitpoints_Regen_Per_Second_Bonus = new(127, "Hitpoints_Regen_Per_Second_Bonus", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Hitpoints_Regen_Per_Second_Bonus_From_Skills = new(128, "Hitpoints_Regen_Per_Second_Bonus_From_Skills", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Hitpoints_Regen_Bonus_Percent = new(129, "Hitpoints_Regen_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Hitpoints_Regen_Per_Second_Subtotal = new(130, "Hitpoints_Regen_Per_Second_Subtotal", script: "(Hitpoints_Regen_Per_Second + Hitpoints_Regen_Per_Second_Bonus) * (1 + Hitpoints_Regen_Bonus_Percent)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Hitpoints_Regen_Reduction_Percent = new(131, "Hitpoints_Regen_Reduction_Percent", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Hitpoints_Regen_Per_Second_Health_Globe = new(132, "Hitpoints_Regen_Per_Second_Health_Globe", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Hitpoints_Regen_Per_Second_Total = new(133, "Hitpoints_Regen_Per_Second_Total", script: "((Hitpoints_Regen_Per_Second_Subtotal + (Hitpoints_Regen_Per_Second_Bonus_From_Skills * (1 + Hitpoints_Regen_Bonus_Percent))) * Pin(1-Hitpoints_Regen_Reduction_Percent, 0, 1)) + Hitpoints_Regen_Per_Second_Health_Globe", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Hitpoints_Max_Percent_Bonus = new(134, "Hitpoints_Max_Percent_Bonus", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Hitpoints_Max_Percent_Bonus_Item = new(135, "Hitpoints_Max_Percent_Bonus_Item", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Hitpoints_Max_Percent_Bonus_Multiplicative = new(136, "Hitpoints_Max_Percent_Bonus_Multiplicative", defaultValue: 1065353216, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Hitpoints_Healed_Target = new(137, "Hitpoints_Healed_Target", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeB Hitpoints_Frozen = new(138, "Hitpoints_Frozen"); + public static readonly GameAttributeB Healing_Suppressed = new(139, "Healing_Suppressed"); + public static readonly GameAttributeF DOT_Damage_Taken_Queued = new(140, "DOT_Damage_Taken_Queued", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF DOT_Damage_Taken_Queued_Tick = new(141, "DOT_Damage_Taken_Queued_Tick"); + public static readonly GameAttributeF DOT_Damage_Taken_Queued_Player = new(142, "DOT_Damage_Taken_Queued_Player"); + public static readonly GameAttributeF DOT_Damage_Taken_Queued_Player_Tick = new(143, "DOT_Damage_Taken_Queued_Player_Tick"); + public static readonly GameAttributeF Healing_Received_Queued = new(144, "Healing_Received_Queued"); + public static readonly GameAttributeF Healing_Received_Queued_Tick = new(145, "Healing_Received_Queued_Tick"); + public static readonly GameAttributeF Staggered_Damage_Fraction = new(146, "Staggered_Damage_Fraction"); + public static readonly GameAttributeF Staggered_Damage_Duration = new(147, "Staggered_Damage_Duration"); + public static readonly GameAttributeI Resource_Type_Primary = new(148, "Resource_Type_Primary", defaultValue: -1, min: -1, max: 9, u4: 3, u5: 1, flags: ReplicationFlags.PlayerReplicated2, bitCount: 4); + public static readonly GameAttributeI Resource_Type_Secondary = new(149, "Resource_Type_Secondary", defaultValue: -1, min: -1, max: 9, u4: 3, u5: 1, flags: ReplicationFlags.PlayerReplicated2, bitCount: 4); + public static readonly GameAttributeF Resource_Cur = new(150, "Resource_Cur", u3: 10, script: "Max(Resource_Cur.Agg, 0)", flags: ReplicationFlags.PlayerReplicated2); + public static readonly GameAttributeF Resource_Max = new(151, "Resource_Max", encodingType: GameAttributeEncoding.Float16Or32, u3: 10, flags: ReplicationFlags.PlayerReplicated2, bitCount: 0); + public static readonly GameAttributeF Resource_Max_Bonus = new(152, "Resource_Max_Bonus", encodingType: GameAttributeEncoding.Float16Or32, u3: 10, flags: (ReplicationFlags)222, bitCount: 0); // FIXME: incorrect flags + public static readonly GameAttributeF Resource_Max_Total = new(153, "Resource_Max_Total", u3: 10, script: "Max((Resource_Max + ((Level#NONE - 1) * Resource_Factor_Level) + Resource_Max_Bonus) * (Resource_Max_Percent_Bonus + 1), 0)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Resource_Factor_Level = new(154, "Resource_Factor_Level", encodingType: GameAttributeEncoding.Float16Or32, u3: 10, flags: ReplicationFlags.PlayerReplicated2, bitCount: 0); + public static readonly GameAttributeF Resource_Granted = new(155, "Resource_Granted", encodingType: GameAttributeEncoding.Float16Or32, u3: 10, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeI Resource_Granted_Duration = new(156, "Resource_Granted_Duration", max: 16777215, u3: 10, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 24); + public static readonly GameAttributeF Resource_Percent = new(157, "Resource_Percent", encodingType: GameAttributeEncoding.Float16, defaultValue: 100, u3: 10, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Resource_Regen_Per_Second = new(158, "Resource_Regen_Per_Second", encodingType: GameAttributeEncoding.Float16Or32, u3: 10, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Resource_Regen_Bonus_Percent = new(159, "Resource_Regen_Bonus_Percent", encodingType: GameAttributeEncoding.Float16, u3: 10, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Resource_Regen_Total = new(160, "Resource_Regen_Total", encodingType: GameAttributeEncoding.Float16, u3: 10, script: "Resource_Regen_Stop_Regen ? 0 : Resource_Regen_Per_Second * (1 + Resource_Regen_Bonus_Percent) + (Resource_Regen_Percent_Per_Second * Resource_Max_Total)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeB Resource_Regen_Stop_Regen = new(161, "Resource_Regen_Stop_Regen", u3: 10, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Resource_Max_Percent_Bonus = new(162, "Resource_Max_Percent_Bonus", encodingType: GameAttributeEncoding.Float16, u3: 10, script: "Resource_Percent", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Resource_Capacity_Used = new(163, "Resource_Capacity_Used", encodingType: GameAttributeEncoding.Float16Or32, u3: 10, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Resource_Effective_Max = new(164, "Resource_Effective_Max", encodingType: GameAttributeEncoding.Float16Or32, u3: 10, script: "Resource_Max_Total-Resource_Capacity_Used", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Resource_Regen_Percent_Per_Second = new(165, "Resource_Regen_Percent_Per_Second", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Resource_Degeneration_Stop_Point = new(166, "Resource_Degeneration_Stop_Point", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeI Highest_Solo_Rift_Level = new(167, "Highest_Solo_Rift_Level", max: 511, bitCount: 9); + public static readonly GameAttributeI Highest_Unlocked_Rift_Level = new(168, "Highest_Unlocked_Rift_Level", defaultValue: 13, max: 511, bitCount: 9); + public static readonly GameAttributeI Last_Rift_Started_Level = new(169, "Last_Rift_Started_Level", max: 511, bitCount: 9); + public static readonly GameAttributeI Highest_Hero_Solo_Rift_Level = new(170, "Highest_Hero_Solo_Rift_Level", max: 511, bitCount: 9); + public static readonly GameAttributeF Movement_Scalar = new(171, "Movement_Scalar", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Walking_Rate = new(172, "Walking_Rate", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Running_Rate = new(173, "Running_Rate", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Sprinting_Rate = new(174, "Sprinting_Rate", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Strafing_Rate = new(175, "Strafing_Rate", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Walking_Rate_Total = new(176, "Walking_Rate_Total", encodingType: GameAttributeEncoding.Float16, script: "Walking_Rate * Movement_Scalar_Total", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Running_Rate_Total = new(177, "Running_Rate_Total", encodingType: GameAttributeEncoding.Float16, script: "Running_Rate * Movement_Scalar_Total", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Last_Running_Rate = new(178, "Last_Running_Rate", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Sprinting_Rate_Total = new(179, "Sprinting_Rate_Total", encodingType: GameAttributeEncoding.Float16, script: "Sprinting_Rate * Movement_Scalar_Total", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Strafing_Rate_Total = new(180, "Strafing_Rate_Total", encodingType: GameAttributeEncoding.Float16, script: "Strafing_Rate * Movement_Scalar_Total", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Movement_Bonus_Total = new(181, "Movement_Bonus_Total", encodingType: GameAttributeEncoding.Float16, script: "Movement_Bonus_Run_Speed", flags: (ReplicationFlags)222, bitCount: 16); // FIXME: incorrect flags + public static readonly GameAttributeF Movement_Scalar_Subtotal = new(182, "Movement_Scalar_Subtotal", encodingType: GameAttributeEncoding.Float16, script: "Max(0.1, Movement_Scalar) * (1 + Movement_Bonus_Total) * (1-Movement_Scalar_Reduction_Percent * (1-Min(1, Movement_Scalar_Reduction_Resistance)))", flags: (ReplicationFlags)222, bitCount: 16); // FIXME: incorrect flags + public static readonly GameAttributeF Movement_Scalar_Capped_Total = new(183, "Movement_Scalar_Capped_Total", encodingType: GameAttributeEncoding.Float16, script: "Min(Movement_Scalar_Cap, Movement_Scalar_Subtotal)", flags: (ReplicationFlags)222, bitCount: 16); // FIXME: incorrect flags + public static readonly GameAttributeF Movement_Scalar_Uncapped_Bonus = new(184, "Movement_Scalar_Uncapped_Bonus", encodingType: GameAttributeEncoding.Float16, flags: (ReplicationFlags)222, bitCount: 16); // FIXME: incorrect flags + public static readonly GameAttributeF Movement_Scalar_Total = new(185, "Movement_Scalar_Total", script: "Movement_Scalar_Capped_Total + Movement_Scalar_Uncapped_Bonus", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Movement_Bonus_Run_Speed = new(186, "Movement_Bonus_Run_Speed", encodingType: GameAttributeEncoding.Float16, flags: (ReplicationFlags)222, bitCount: 16); // FIXME: incorrect flags + public static readonly GameAttributeF Movement_Scalar_Cap = new(187, "Movement_Scalar_Cap", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Casting_Speed = new(188, "Casting_Speed", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Casting_Speed_Bonus = new(189, "Casting_Speed_Bonus", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Casting_Speed_Total = new(190, "Casting_Speed_Total", encodingType: GameAttributeEncoding.Float16, script: "(Casting_Speed + Casting_Speed_Bonus) * Max(0.1, 1 + Casting_Speed_Percent)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeB Always_Hits = new(191, "Always_Hits"); + public static readonly GameAttributeF Hit_Chance = new(192, "Hit_Chance", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Knockback_Attack_Scalar = new(193, "Knockback_Attack_Scalar", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Attacks_Per_Second_Item = new(194, "Attacks_Per_Second_Item", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Item_Percent = new(195, "Attacks_Per_Second_Item_Percent", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Item_Subtotal = new(196, "Attacks_Per_Second_Item_Subtotal", script: "Attacks_Per_Second_Item * (1 + Attacks_Per_Second_Item_Percent)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Item_Bonus = new(197, "Attacks_Per_Second_Item_Bonus", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Item_Total = new(198, "Attacks_Per_Second_Item_Total", script: "(Attacks_Per_Second_Item_Subtotal + Attacks_Per_Second_Item_Bonus)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second = new(199, "Attacks_Per_Second", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Bonus = new(200, "Attacks_Per_Second_Bonus", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Total = new(201, "Attacks_Per_Second_Total", script: "Min(5.0, Max(0.01, (((Attacks_Per_Second_Item_CurrentHand > 0.0) ? Attacks_Per_Second_Item_CurrentHand : Attacks_Per_Second) + Attacks_Per_Second_Bonus + Attacks_Per_Second_Item_Bonus) * Attacks_Per_Second_Percent_Subtotal))", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Percent_Cap = new(202, "Attacks_Per_Second_Percent_Cap", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Percent = new(203, "Attacks_Per_Second_Percent", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Percent_Uncapped = new(204, "Attacks_Per_Second_Percent_Uncapped", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Percent_Reduction = new(205, "Attacks_Per_Second_Percent_Reduction", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Percent_Subtotal = new(206, "Attacks_Per_Second_Percent_Subtotal", script: "Max(0.1, (1 + (Min(Attacks_Per_Second_Percent_Cap, Attacks_Per_Second_Percent)) + Attacks_Per_Second_Percent_Uncapped) * (1-Attacks_Per_Second_Percent_Reduction))", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF AI_Cooldown_Reduction_Percent = new(207, "AI_Cooldown_Reduction_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Power_Cooldown_Min_Time = new(208, "Power_Cooldown_Min_Time", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Power_Cooldown_Reduction_Percent = new(209, "Power_Cooldown_Reduction_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Power_Cooldown_Reduction_Percent_All = new(210, "Power_Cooldown_Reduction_Percent_All", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Power_Cooldown_Reduction_Percent_All_Capped = new(211, "Power_Cooldown_Reduction_Percent_All_Capped", encodingType: GameAttributeEncoding.Float16, script: "Power_Cooldown_Reduction_Percent_All", bitCount: 16); + public static readonly GameAttributeF Damage_Delta = new(212, "Damage_Delta", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Damage_Delta_Total = new(213, "Damage_Delta_Total", script: "Max(Damage_Delta-Damage_Bonus_Min + Damage_Weapon_Delta_Total_CurrentHand, 0)"); + public static readonly GameAttributeF Damage_Min = new(214, "Damage_Min"); + public static readonly GameAttributeF Damage_Bonus_Min = new(215, "Damage_Bonus_Min"); + public static readonly GameAttributeF Damage_Min_Total = new(216, "Damage_Min_Total", script: "Damage_Min_Subtotal"); + public static readonly GameAttributeF Damage_Delta_Total_All = new(217, "Damage_Delta_Total_All"); + public static readonly GameAttributeF Damage_Min_Total_All = new(218, "Damage_Min_Total_All"); + public static readonly GameAttributeF Damage_Average_Total_All = new(219, "Damage_Average_Total_All"); + public static readonly GameAttributeF Damage_Min_Subtotal = new(220, "Damage_Min_Subtotal", script: "Damage_Min + Damage_Bonus_Min + Damage_Weapon_Min_Total_CurrentHand"); + public static readonly GameAttributeF Damage_Percent_All_From_Skills = new(221, "Damage_Percent_All_From_Skills"); + public static readonly GameAttributeF Damage_Weapon_Delta = new(222, "Damage_Weapon_Delta", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Delta_SubTotal = new(223, "Damage_Weapon_Delta_SubTotal", script: "(Damage_Weapon_Delta > 0.0) ? (Max(1, Damage_Weapon_Delta - Damage_Weapon_Bonus_Min)) : Damage_Weapon_Delta", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Max = new(224, "Damage_Weapon_Max", script: "(Damage_Weapon_Min + Damage_Weapon_Delta)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Max_Total = new(225, "Damage_Weapon_Max_Total", script: "(Damage_Weapon_Min_Total + Damage_Weapon_Delta_Total)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Max_Total_All = new(226, "Damage_Weapon_Max_Total_All", script: "(Damage_Weapon_Max_Total#Physical + Damage_Weapon_Max_Total#Fire + Damage_Weapon_Max_Total#Cold + Damage_Weapon_Max_Total#Lightning + Damage_Weapon_Max_Total#Poison + Damage_Weapon_Max_Total#Arcane + Damage_Weapon_Max_Total#Holy)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Delta_Total = new(227, "Damage_Weapon_Delta_Total", script: "Max((Damage_Weapon_Delta_SubTotal + Damage_Weapon_Bonus_Delta + Damage_Weapon_Bonus_Delta_X1) * (1 + Damage_Weapon_Percent_Total), 0)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Delta_Total_All = new(228, "Damage_Weapon_Delta_Total_All", script: "(Damage_Weapon_Delta_Total#Physical + Damage_Weapon_Delta_Total#Fire + Damage_Weapon_Delta_Total#Cold + Damage_Weapon_Delta_Total#Lightning + Damage_Weapon_Delta_Total#Poison + Damage_Weapon_Delta_Total#Arcane + Damage_Weapon_Delta_Total#Holy)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Bonus_Delta = new(229, "Damage_Weapon_Bonus_Delta", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Bonus_Delta_X1 = new(230, "Damage_Weapon_Bonus_Delta_X1", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Min = new(231, "Damage_Weapon_Min", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Min_Total = new(232, "Damage_Weapon_Min_Total", script: "(Damage_Weapon_Min + Damage_Weapon_Bonus_Min + Damage_Weapon_Bonus_Min_X1 + Damage_Weapon_Bonus_Flat) * (1 + Damage_Weapon_Percent_Total)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Min_Total_All = new(233, "Damage_Weapon_Min_Total_All", script: "(Damage_Weapon_Min_Total#Physical + Damage_Weapon_Min_Total#Fire + Damage_Weapon_Min_Total#Cold + Damage_Weapon_Min_Total#Lightning + Damage_Weapon_Min_Total#Poison + Damage_Weapon_Min_Total#Arcane + Damage_Weapon_Min_Total#Holy)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Average = new(234, "Damage_Weapon_Average", script: "(Damage_Weapon_Min + (Damage_Weapon_Delta/2))", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Average_Total = new(235, "Damage_Weapon_Average_Total", script: "(Damage_Weapon_Min_Total + (Damage_Weapon_Delta_Total/2))", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Average_Total_All = new(236, "Damage_Weapon_Average_Total_All", script: "(Damage_Weapon_Min_Total_All + (Damage_Weapon_Delta_Total_All/2))", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Bonus_Min = new(237, "Damage_Weapon_Bonus_Min"); + public static readonly GameAttributeF Damage_Weapon_Bonus_Min_X1 = new(238, "Damage_Weapon_Bonus_Min_X1"); + public static readonly GameAttributeF Damage_Weapon_Bonus_Flat = new(239, "Damage_Weapon_Bonus_Flat"); + public static readonly GameAttributeF Damage_Weapon_Percent_Bonus = new(240, "Damage_Weapon_Percent_Bonus"); + public static readonly GameAttributeF Damage_Weapon_Percent_All = new(241, "Damage_Weapon_Percent_All"); + public static readonly GameAttributeF Damage_Weapon_Percent_Total = new(242, "Damage_Weapon_Percent_Total"); + public static readonly GameAttributeF Damage_Type_Percent_Bonus = new(243, "Damage_Type_Percent_Bonus"); + public static readonly GameAttributeF Damage_Dealt_Percent_Bonus = new(244, "Damage_Dealt_Percent_Bonus"); + public static readonly GameAttributeF Damage_Percent_Bonus_Barbarian = new(245, "Damage_Percent_Bonus_Barbarian"); + public static readonly GameAttributeF Damage_Percent_Bonus_Crusader = new(246, "Damage_Percent_Bonus_Crusader"); + public static readonly GameAttributeF Damage_Percent_Bonus_Demonhunter = new(247, "Damage_Percent_Bonus_Demonhunter"); + public static readonly GameAttributeF Damage_Percent_Bonus_Monk = new(248, "Damage_Percent_Bonus_Monk"); + public static readonly GameAttributeF Damage_Percent_Bonus_Necromancer = new(249, "Damage_Percent_Bonus_Necromancer"); + public static readonly GameAttributeF Damage_Percent_Bonus_Witchdoctor = new(250, "Damage_Percent_Bonus_Witchdoctor"); + public static readonly GameAttributeF Damage_Percent_Bonus_Wizard = new(251, "Damage_Percent_Bonus_Wizard"); + public static readonly GameAttributeF Crit_Percent_Base = new(252, "Crit_Percent_Base"); + public static readonly GameAttributeF Crit_Percent_Bonus_Capped = new(253, "Crit_Percent_Bonus_Capped"); + public static readonly GameAttributeF Crit_Percent_Bonus_Uncapped = new(254, "Crit_Percent_Bonus_Uncapped"); + public static readonly GameAttributeF Crit_Percent_Bonus_Hide_From_DPS = new(255, "Crit_Percent_Bonus_Hide_From_DPS"); + public static readonly GameAttributeF Crit_Percent_Cap = new(256, "Crit_Percent_Cap"); + public static readonly GameAttributeF Crit_Damage_Cap = new(257, "Crit_Damage_Cap"); + public static readonly GameAttributeF Crit_Damage_Percent = new(258, "Crit_Damage_Percent"); + public static readonly GameAttributeF Crit_Damage_Percent_Uncapped = new(259, "Crit_Damage_Percent_Uncapped"); + public static readonly GameAttributeF Crit_Effect_Time = new(260, "Crit_Effect_Time"); + public static readonly GameAttributeF Pierce_Chance = new(261, "Pierce_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Damage_Absorb_Percent = new(262, "Damage_Absorb_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Damage_Reduction_Total = new(263, "Damage_Reduction_Total", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Damage_Reduction_Current = new(264, "Damage_Reduction_Current", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeI Damage_Reduction_Last_Tick = new(265, "Damage_Reduction_Last_Tick"); + public static readonly GameAttributeF Block_Chance = new(266, "Block_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Block_Chance_Sub_Total = new(267, "Block_Chance_Sub_Total", encodingType: GameAttributeEncoding.Float16, script: "Min(1.0, Block_Chance + Block_Chance_Item_Total)", bitCount: 16); + public static readonly GameAttributeF Block_Chance_Bonus_Item = new(268, "Block_Chance_Bonus_Item", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Block_Chance_Item = new(269, "Block_Chance_Item", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Block_Chance_Item_Total = new(270, "Block_Chance_Item_Total", encodingType: GameAttributeEncoding.Float16, script: "Block_Chance_Item + Block_Chance_Bonus_Item", bitCount: 16); + public static readonly GameAttributeF Block_Chance_Uncapped_Bonus = new(271, "Block_Chance_Uncapped_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Block_Chance_Capped_Total = new(272, "Block_Chance_Capped_Total", encodingType: GameAttributeEncoding.Float16, script: "Min(1.0, Block_Chance_Sub_Total + Block_Chance_Uncapped_Bonus)", bitCount: 16); + public static readonly GameAttributeF Block_Amount = new(273, "Block_Amount", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Block_Amount_Bonus_Percent = new(274, "Block_Amount_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Block_Amount_Total_Min = new(275, "Block_Amount_Total_Min", script: "(Block_Amount + Block_Amount_Item_Min + Block_Amount_Item_Bonus) * (1 + Block_Amount_Bonus_Percent)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Block_Amount_Total_Max = new(276, "Block_Amount_Total_Max", script: "(Block_Amount + Block_Amount_Item_Min + Block_Amount_Item_Delta + Block_Amount_Item_Bonus) * (1 + Block_Amount_Bonus_Percent)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Block_Amount_Item_Min = new(277, "Block_Amount_Item_Min", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Block_Amount_Item_Delta = new(278, "Block_Amount_Item_Delta", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Block_Amount_Item_Bonus = new(279, "Block_Amount_Item_Bonus", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Dodge_Chance_Bonus = new(280, "Dodge_Chance_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Dodge_Chance_Bonus_Melee = new(281, "Dodge_Chance_Bonus_Melee", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Dodge_Chance_Bonus_Ranged = new(282, "Dodge_Chance_Bonus_Ranged", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Dodge_Chance_Bonus_Additive = new(283, "Dodge_Chance_Bonus_Additive"); + public static readonly GameAttributeF Dodge_Chance_Bonus_Hide_From_Toughness = new(284, "Dodge_Chance_Bonus_Hide_From_Toughness"); + public static readonly GameAttributeB Cannot_Dodge = new(285, "Cannot_Dodge", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Get_Hit_Current = new(286, "Get_Hit_Current", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Get_Hit_Max_Base = new(287, "Get_Hit_Max_Base", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Get_Hit_Max_Per_Level = new(288, "Get_Hit_Max_Per_Level", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Get_Hit_Max = new(289, "Get_Hit_Max", encodingType: GameAttributeEncoding.Float16Or32, script: "Get_Hit_Max_Base + (Get_Hit_Max_Per_Level * Level)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Get_Hit_Recovery_Base = new(290, "Get_Hit_Recovery_Base", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Get_Hit_Recovery_Per_Level = new(291, "Get_Hit_Recovery_Per_Level", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Get_Hit_Recovery = new(292, "Get_Hit_Recovery", encodingType: GameAttributeEncoding.Float16Or32, script: "Get_Hit_Recovery_Base + (Get_Hit_Recovery_Per_Level * Level)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Get_Hit_Damage = new(293, "Get_Hit_Damage", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Get_Hit_Damage_Scalar = new(294, "Get_Hit_Damage_Scalar", encodingType: GameAttributeEncoding.Float16Or32, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 0); + public static readonly GameAttributeF Last_Damage_MainActor = new(295, "Last_Damage_MainActor", defaultValue: -1); + public static readonly GameAttributeF Last_ACD_Attacked = new(296, "Last_ACD_Attacked", defaultValue: -1); + public static readonly GameAttributeB Ignores_Critical_Hits = new(297, "Ignores_Critical_Hits"); + public static readonly GameAttributeB Immunity = new(298, "Immunity"); + public static readonly GameAttributeB Untargetable = new(299, "Untargetable", u4: 1, u5: 1, flags: (ReplicationFlags)222); // FIXME: incorrect flags + public static readonly GameAttributeB Immobolize = new(300, "Immobolize", flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeB Immune_To_Knockback = new(301, "Immune_To_Knockback", flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeB Power_Immobilize = new(302, "Power_Immobilize"); + public static readonly GameAttributeF Stun_Chance = new(303, "Stun_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Stun_Length = new(304, "Stun_Length", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Stun_Recovery = new(305, "Stun_Recovery", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Stun_Recovery_Speed = new(306, "Stun_Recovery_Speed", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Stunned = new(307, "Stunned"); + public static readonly GameAttributeB Stun_Immune = new(308, "Stun_Immune"); + public static readonly GameAttributeF Poison_Length_Reduction = new(309, "Poison_Length_Reduction", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Bleeding = new(310, "Bleeding"); + public static readonly GameAttributeF Bleed_Duration = new(311, "Bleed_Duration", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Chilled = new(312, "Chilled"); + public static readonly GameAttributeF Freeze_Length_Reduction = new(313, "Freeze_Length_Reduction", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Freeze_Immune = new(314, "Freeze_Immune"); + public static readonly GameAttributeF Chill_Duration_Bonus_Percent = new(315, "Chill_Duration_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Freeze_Duration_Bonus_Percent = new(316, "Freeze_Duration_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Stun_Duration_Bonus_Percent = new(317, "Stun_Duration_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Immobilize_Duration_Bonus_Percent = new(318, "Immobilize_Duration_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Fear_Duration_Bonus_Percent = new(319, "Fear_Duration_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Blind_Duration_Bonus_Percent = new(320, "Blind_Duration_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Charm_Duration_Bonus_Percent = new(321, "Charm_Duration_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Slow_Duration_Bonus_Percent = new(322, "Slow_Duration_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeB Webbed = new(323, "Webbed"); + public static readonly GameAttributeB Slow = new(324, "Slow"); + public static readonly GameAttributeB FireAura = new(325, "FireAura"); + public static readonly GameAttributeB LightningAura = new(326, "LightningAura"); + public static readonly GameAttributeB ColdAura = new(327, "ColdAura"); + public static readonly GameAttributeB PoisonAura = new(328, "PoisonAura"); + public static readonly GameAttributeB Blind = new(329, "Blind"); + public static readonly GameAttributeB Enraged = new(330, "Enraged"); + public static readonly GameAttributeB Slowdown_Immune = new(331, "Slowdown_Immune"); + public static readonly GameAttributeB Gethit_Immune = new(332, "Gethit_Immune"); + public static readonly GameAttributeB AttackSpeed_Reduction_Immune = new(333, "AttackSpeed_Reduction_Immune"); + public static readonly GameAttributeF Suffocation_Per_Second = new(334, "Suffocation_Per_Second", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Suffocation_Unit_Value = new(335, "Suffocation_Unit_Value", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Thorns_Percent = new(336, "Thorns_Percent"); + public static readonly GameAttributeF Thorns_Percent_All = new(337, "Thorns_Percent_All"); + public static readonly GameAttributeF Thorns_Percent_Total = new(338, "Thorns_Percent_Total", script: "Thorns_Percent + Thorns_Percent_All#NONE"); + public static readonly GameAttributeF Thorns_Fixed = new(339, "Thorns_Fixed"); + public static readonly GameAttributeF Thorns_Fixed_Bonus_Percent = new(340, "Thorns_Fixed_Bonus_Percent"); + public static readonly GameAttributeF Thorns_Fixed_Total = new(341, "Thorns_Fixed_Total", script: "Thorns_Fixed * (1.0 + Thorns_Fixed_Bonus_Percent#NONE)"); + public static readonly GameAttributeF Thorns_AOE_Radius = new(342, "Thorns_AOE_Radius"); + public static readonly GameAttributeB Thorns_Has_Damage_Type = new(343, "Thorns_Has_Damage_Type"); + public static readonly GameAttributeF On_First_Hit_Thorns_Percent = new(344, "On_First_Hit_Thorns_Percent"); + public static readonly GameAttributeF Steal_Health_Percent = new(345, "Steal_Health_Percent"); + public static readonly GameAttributeF Steal_Mana_Percent = new(346, "Steal_Mana_Percent"); + public static readonly GameAttributeF Resource_On_Hit = new(347, "Resource_On_Hit", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Resource_On_Hit_Bonus_Pct = new(348, "Resource_On_Hit_Bonus_Pct", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Resource_On_Hit_Bonus = new(349, "Resource_On_Hit_Bonus", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Resource_On_Kill = new(350, "Resource_On_Kill", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Resource_On_Crit = new(351, "Resource_On_Crit", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Hitpoints_On_Hit = new(352, "Hitpoints_On_Hit", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Hitpoints_On_Kill = new(353, "Hitpoints_On_Kill", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Hitpoints_On_Kill_Reduction_Percent = new(354, "Hitpoints_On_Kill_Reduction_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Hitpoints_On_Kill_Total = new(355, "Hitpoints_On_Kill_Total", encodingType: GameAttributeEncoding.Float16Or32, script: "Hitpoints_On_Kill * Pin(1-Hitpoints_On_Kill_Reduction_Percent, 0, 2)", bitCount: 0); + public static readonly GameAttributeF Damage_To_Mana = new(356, "Damage_To_Mana", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Last_Proc_Time = new(357, "Last_Proc_Time"); + public static readonly GameAttributeF Damage_Power_Delta = new(358, "Damage_Power_Delta", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Damage_Power_Min = new(359, "Damage_Power_Min", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Rope_Overlay = new(360, "Rope_Overlay", defaultValue: -1); + public static readonly GameAttributeI General_Cooldown = new(361, "General_Cooldown", defaultValue: -1); + public static readonly GameAttributeI Power_Cooldown = new(362, "Power_Cooldown", defaultValue: -1, flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeI Power_Cooldown_Start = new(363, "Power_Cooldown_Start", defaultValue: int.MaxValue, flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeI Proc_Cooldown = new(364, "Proc_Cooldown", flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeI Emote_Cooldown = new(365, "Emote_Cooldown", flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeF Projectile_Speed = new(366, "Projectile_Speed", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Projectile_Speed_Increase_Percent = new(367, "Projectile_Speed_Increase_Percent", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeB DestroyWhenPathBlocked = new(368, "DestroyWhenPathBlocked"); + public static readonly GameAttributeB Skill_Toggled_State = new(369, "Skill_Toggled_State", flags: ReplicationFlags.PlayerReplicated); + public static readonly GameAttributeI Skill_Charges = new(370, "Skill_Charges", max: 99, flags: ReplicationFlags.PlayerReplicated, bitCount: 7); + public static readonly GameAttributeI Next_Charge_Gained_time = new(371, "Next_Charge_Gained_time", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeI Recharge_Start_Time = new(372, "Recharge_Start_Time", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Act = new(373, "Act", defaultValue: -1, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeI Difficulty = new(374, "Difficulty", defaultValue: -1, min: -1, max: 6, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 3); + public static readonly GameAttributeF Last_Damage_Amount = new(375, "Last_Damage_Amount", encodingType: GameAttributeEncoding.Float16Or32, defaultValue: -1, bitCount: 0); + public static readonly GameAttributeB In_Knockback = new(376, "In_Knockback"); + public static readonly GameAttributeF Amplify_Damage_Type_Percent = new(377, "Amplify_Damage_Type_Percent", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Amplify_Damage_Skill_Percent = new(378, "Amplify_Damage_Skill_Percent", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Amplify_Damage_Percent = new(379, "Amplify_Damage_Percent", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeI Durability_Cur = new(380, "Durability_Cur", u5: 1, flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeI Durability_Max = new(381, "Durability_Max", u5: 1, flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Durability_Last_Damage = new(382, "Durability_Last_Damage"); + public static readonly GameAttributeI Item_Quality_Level = new(383, "Item_Quality_Level", encodingType: GameAttributeEncoding.IntMinMax, defaultValue: -1, min: -1, max: 11, u4: 4, u5: 1, flags: ReplicationFlags.ItemReplicated, bitCount: 4); + public static readonly GameAttributeI Item_Quality_Level_Identified = new(384, "Item_Quality_Level_Identified", encodingType: GameAttributeEncoding.IntMinMax, defaultValue: -1, min: -1, max: 11, u4: 4, u5: 1, flags: ReplicationFlags.ItemReplicated, bitCount: 4); + public static readonly GameAttributeF Item_Cost_Percent_Bonus = new(385, "Item_Cost_Percent_Bonus", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeB Item_Equipped = new(386, "Item_Equipped", flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Ping = new(387, "Ping", defaultValue: -1, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Requirement = new(388, "Requirement", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Requirements_Ease_Percent = new(389, "Requirements_Ease_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Requirement_When_Equipped = new(390, "Requirement_When_Equipped", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeI Sockets = new(391, "Sockets", max: 3, u5: 1, flags: ReplicationFlags.ItemReplicated, bitCount: 2); + public static readonly GameAttributeI Sockets_Filled = new(392, "Sockets_Filled", max: 3, u5: 1, flags: ReplicationFlags.ItemReplicated, bitCount: 2); + public static readonly GameAttributeF Stats_All_Bonus = new(393, "Stats_All_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Item_Bound_To_ACD = new(394, "Item_Bound_To_ACD", defaultValue: -1); + public static readonly GameAttributeF Item_Locked_To_ACD = new(395, "Item_Locked_To_ACD", defaultValue: -1); + public static readonly GameAttributeI Item_Binding_Level_Override = new(396, "Item_Binding_Level_Override", max: 4, flags: ReplicationFlags.ItemReplicated, bitCount: 3); + public static readonly GameAttributeF Item_LegendaryItem_Level_Override = new(397, "Item_LegendaryItem_Level_Override", flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeI Item_Targeted_Player_Class = new(398, "Item_Targeted_Player_Class", defaultValue: -1, min: -1, max: 7, flags: ReplicationFlags.ItemReplicated, bitCount: 4); + public static readonly GameAttributeI Item_Targeted_Hireling_Class = new(399, "Item_Targeted_Hireling_Class", max: 4, flags: ReplicationFlags.ItemReplicated, bitCount: 3); + public static readonly GameAttributeI ItemStackQuantityHi = new(400, "ItemStackQuantityHi", u4: 4, u5: 1, flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeI ItemStackQuantityLo = new(401, "ItemStackQuantityLo", u4: 4, u5: 1, flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Run_Speed_Granted = new(402, "Run_Speed_Granted", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeI Run_Speed_Duration = new(403, "Run_Speed_Duration", max: 16777215, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 24); + public static readonly GameAttributeF IdentifyCost = new(404, "IdentifyCost"); + public static readonly GameAttributeI Seed = new(405, "Seed", flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeB IsCrafted = new(406, "IsCrafted", flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeB IsVendorBought = new(407, "IsVendorBought", flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeI DyeType = new(408, "DyeType", min: -1, max: 30, flags: ReplicationFlags.ItemReplicated, bitCount: 5); + public static readonly GameAttributeB Loot_2_0_Drop = new(409, "Loot_2_0_Drop"); + public static readonly GameAttributeB Post_2_1_2_Drop = new(410, "Post_2_1_2_Drop"); + public static readonly GameAttributeB Post_2_1_3_Drop_ = new(411, "Post_2_1_3_Drop"); + public static readonly GameAttributeB Post_2_5_0_Drop = new(412, "Post_2_5_0_Drop"); + public static readonly GameAttributeI Ancient_Rank = new(413, "Ancient_Rank", max: 2, flags: ReplicationFlags.ItemReplicated, bitCount: 2); + public static readonly GameAttributeB Unidentified = new(414, "Unidentified", flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeB RemoveLevelReq = new(415, "RemoveLevelReq", flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeB ConsumableAddSockets = new(416, "ConsumableAddSockets"); + public static readonly GameAttributeB AddSocketsType_Weapon = new(417, "AddSocketsType_Weapon"); + public static readonly GameAttributeB AddSocketsType_Offhand = new(418, "AddSocketsType_Offhand"); + public static readonly GameAttributeB AddSocketsType_Legs = new(419, "AddSocketsType_Legs"); + public static readonly GameAttributeB AddSocketsType_Chest = new(420, "AddSocketsType_Chest"); + public static readonly GameAttributeB AddSocketsType_Helm = new(421, "AddSocketsType_Helm"); + public static readonly GameAttributeB AddSocketsType_Jewelry = new(422, "AddSocketsType_Jewelry"); + public static readonly GameAttributeF EnchantedAffixOld = new(423, "EnchantedAffixOld", defaultValue: -1); + public static readonly GameAttributeF EnchantedAffixNew = new(424, "EnchantedAffixNew", defaultValue: -1); + public static readonly GameAttributeF EnchantedAffixSeed = new(425, "EnchantedAffixSeed"); + public static readonly GameAttributeF EnchantedAffixCount = new(426, "EnchantedAffixCount"); + public static readonly GameAttributeF TransmogGBID = new(427, "TransmogGBID", defaultValue: -1, flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF TransmogGBIDTempOverride = new(428, "TransmogGBIDTempOverride", defaultValue: -1, flags: ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF HighlySalvageable = new(429, "HighlySalvageable"); + public static readonly GameAttributeF ItemUnlockTimeHi = new(430, "ItemUnlockTimeHi"); + public static readonly GameAttributeF ItemUnlockTimeLo = new(431, "ItemUnlockTimeLo"); + public static readonly GameAttributeF CubeEnchantedGemRank = new(432, "CubeEnchantedGemRank"); + public static readonly GameAttributeF CubeEnchantedGemType = new(433, "CubeEnchantedGemType"); + public static readonly GameAttributeF Cube_Enchanted_Strength_Item = new(434, "Cube_Enchanted_Strength_Item"); + public static readonly GameAttributeF Cube_Enchanted_Dexterity_Item = new(435, "Cube_Enchanted_Dexterity_Item"); + public static readonly GameAttributeF Cube_Enchanted_Intelligence_Item = new(436, "Cube_Enchanted_Intelligence_Item"); + public static readonly GameAttributeF Cube_Enchanted_Vitality_Item = new(437, "Cube_Enchanted_Vitality_Item"); + public static readonly GameAttributeB Always_Plays_GetHit = new(438, "Always_Plays_GetHit"); + public static readonly GameAttributeB Hidden = new(439, "Hidden", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Alpha_For_Other_Players = new(440, "Alpha_For_Other_Players", defaultValue: -1); + public static readonly GameAttributeB AlphaAttachments = new(441, "AlphaAttachments"); + public static readonly GameAttributeF RActor_Fade_Group = new(442, "RActor_Fade_Group", defaultValue: -1); + public static readonly GameAttributeF QuestRange = new(443, "QuestRange", defaultValue: -1); + public static readonly GameAttributeI Attack_Cooldown_Min = new(444, "Attack_Cooldown_Min", max: 16777215, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 24); + public static readonly GameAttributeI Attack_Cooldown_Delta = new(445, "Attack_Cooldown_Delta", max: 16777215, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 24); + public static readonly GameAttributeI InitialCooldownMinTotal = new(446, "InitialCooldownMinTotal", max: 16777215, script: "InitialCooldownMin / Attacks_Per_Second_Total", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 24); + public static readonly GameAttributeI InitialCooldownDeltaTotal = new(447, "InitialCooldownDeltaTotal", max: 16777215, script: "InitialCooldownDelta / Attacks_Per_Second_Total", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 24); + public static readonly GameAttributeI Attack_Cooldown_Min_Total = new(448, "Attack_Cooldown_Min_Total", max: 16777215, script: "Attack_Cooldown_Min / Attacks_Per_Second_Total", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 24); + public static readonly GameAttributeI Attack_Cooldown_Delta_Total = new(449, "Attack_Cooldown_Delta_Total", max: 16777215, script: "Attack_Cooldown_Delta / Attacks_Per_Second_Total", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 24); + public static readonly GameAttributeI Closing_Cooldown_Min_Total = new(450, "Closing_Cooldown_Min_Total", max: 16777215, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 24); + public static readonly GameAttributeI Closing_Cooldown_Delta_Total = new(451, "Closing_Cooldown_Delta_Total", max: 16777215, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 24); + public static readonly GameAttributeB Quest_Monster = new(452, "Quest_Monster"); + public static readonly GameAttributeF Quest_MonsterEffect = new(453, "Quest_MonsterEffect", defaultValue: -1); + public static readonly GameAttributeF Treasure_Class = new(454, "Treasure_Class", defaultValue: -1); + public static readonly GameAttributeB Removes_Body_On_Death = new(455, "Removes_Body_On_Death"); + public static readonly GameAttributeI InitialCooldownMin = new(456, "InitialCooldownMin", max: 16777215, bitCount: 24); + public static readonly GameAttributeI InitialCooldownDelta = new(457, "InitialCooldownDelta", max: 16777215, bitCount: 24); + public static readonly GameAttributeF Knockback_Weight = new(458, "Knockback_Weight", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB UntargetableByPets = new(459, "UntargetableByPets"); + public static readonly GameAttributeI Damage_State_Current = new(460, "Damage_State_Current", max: 15, bitCount: 4); + public static readonly GameAttributeI Damage_State_Max = new(461, "Damage_State_Max", max: 15, bitCount: 4); + public static readonly GameAttributeB Is_Player_Decoy = new(462, "Is_Player_Decoy"); + public static readonly GameAttributeF Custom_Target_Weight = new(463, "Custom_Target_Weight", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeI Gizmo_State = new(464, "Gizmo_State", encodingType: GameAttributeEncoding.IntMinMax, defaultValue: -1, min: -1, max: 30, u4: 3, u5: 1, flags: ReplicationFlags.GizmoReplicated, bitCount: 5); + public static readonly GameAttributeI Gizmo_Charges = new(465, "Gizmo_Charges", min: -1, max: 30, u4: 1, u5: 1, flags: ReplicationFlags.GizmoReplicated, bitCount: 5); + public static readonly GameAttributeB Chest_Open = new(466, "Chest_Open", flags: ReplicationFlags.GizmoReplicated); + public static readonly GameAttributeB Door_Locked = new(467, "Door_Locked", flags: ReplicationFlags.GizmoReplicated); + public static readonly GameAttributeF Door_Timer = new(468, "Door_Timer", defaultValue: -1); + public static readonly GameAttributeB Gizmo_Disabled_By_Script = new(469, "Gizmo_Disabled_By_Script", flags: (ReplicationFlags)222); // FIXME: incorrect flags + public static readonly GameAttributeI Gizmo_Operator_ACDID = new(470, "Gizmo_Operator_ACDID", defaultValue: -1, u4: 3, u5: 1, flags: ReplicationFlags.GizmoReplicated); + public static readonly GameAttributeF Triggering_Count = new(471, "Triggering_Count"); + public static readonly GameAttributeF Gizmo_Operation_Radius_Override = new(472, "Gizmo_Operation_Radius_Override", encodingType: GameAttributeEncoding.Float16, u4: 1, flags: ReplicationFlags.GizmoReplicated, bitCount: 16); + public static readonly GameAttributeF Gate_Position = new(473, "Gate_Position", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Gate_Velocity = new(474, "Gate_Velocity", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Gizmo_Has_Been_Operated = new(475, "Gizmo_Has_Been_Operated", u4: 1, u5: 1, flags: ReplicationFlags.GizmoReplicated); + public static readonly GameAttributeB Banner_Usable = new(476, "Banner_Usable"); + public static readonly GameAttributeB Banner_Player_In_Combat = new(477, "Banner_Player_In_Combat"); + public static readonly GameAttributeI Pet_Owner = new(478, "Pet_Owner", defaultValue: -1, min: -1, max: 8, flags: (ReplicationFlags)222, bitCount: 4); // FIXME: incorrect flags + public static readonly GameAttributeI Pet_Creator = new(479, "Pet_Creator", defaultValue: -1, min: -1, max: 8, flags: (ReplicationFlags)222, bitCount: 4); // FIXME: incorrect flags + public static readonly GameAttributeI Pet_Type = new(480, "Pet_Type", defaultValue: -1, min: -1, max: 77, flags: (ReplicationFlags)222, bitCount: 7); + public static readonly GameAttributeB DropsNoLoot = new(481, "DropsNoLoot"); + public static readonly GameAttributeB GrantsNoXP = new(482, "GrantsNoXP"); + public static readonly GameAttributeI Hireling_Class = new(483, "Hireling_Class", max: 4, flags: (ReplicationFlags)222, bitCount: 3); // FIXME: incorrect flags + public static readonly GameAttributeF Summoned_By_SNO = new(484, "Summoned_By_SNO", defaultValue: -1); + public static readonly GameAttributeF Pet_Proc_Scalar = new(485, "Pet_Proc_Scalar", defaultValue: 1065353216); + public static readonly GameAttributeB Pet_Cannot_Be_Dismissed = new(486, "Pet_Cannot_Be_Dismissed"); + public static readonly GameAttributeB Is_NPC = new(487, "Is_NPC", u4: 1, u5: 1, flags: (ReplicationFlags)222); // FIXME: incorrect flags + public static readonly GameAttributeB NPC_Is_Operatable = new(488, "NPC_Is_Operatable", u4: 1, u5: 1, flags: (ReplicationFlags)222); // FIXME: incorrect flags + public static readonly GameAttributeB NPC_Is_Escorting = new(489, "NPC_Is_Escorting", u4: 1, u5: 1, flags: (ReplicationFlags)222); // FIXME: incorrect flags + public static readonly GameAttributeB NPC_Has_Interact_Options = new(490, "NPC_Has_Interact_Options, u3: 12, u4: 1, u5: 1", flags: (ReplicationFlags)222); // FIXME: incorrect flags + public static readonly GameAttributeI Conversation_Icon = new(491, "Conversation_Icon", defaultValue: -1, min: -1, max: 6, flags: (ReplicationFlags)222, bitCount: 3); // FIXME: incorrect flags + public static readonly GameAttributeI Conversation_Icon_Override = new(492, "Conversation_Icon_Override", defaultValue: -1, min: -1, max: 6, flags: (ReplicationFlags)222, bitCount: 3); // FIXME: incorrect flags + public static readonly GameAttributeF Callout_Cooldown = new(493, "Callout_Cooldown", defaultValue: -1); + public static readonly GameAttributeF Banter_Cooldown = new(494, "Banter_Cooldown", defaultValue: -1); + public static readonly GameAttributeF Conversation_Heard_Count = new(495, "Conversation_Heard_Count"); + public static readonly GameAttributeF Last_Tick_Shop_Entered = new(496, "Last_Tick_Shop_Entered", defaultValue: -1); + public static readonly GameAttributeB Is_Helper = new(497, "Is_Helper"); + public static readonly GameAttributeF Axe = new(498, "Axe", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Axe2H = new(499, "Axe2H", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF ThrowingAxe = new(500, "ThrowingAxe", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF AxeAny = new(501, "AxeAny", script: "Pin(Axe + Axe2H + ThrowingAxe, 0, 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Bow = new(502, "Bow", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Crossbow = new(503, "Crossbow", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF BowAny = new(504, "BowAny", script: "Pin(Bow + Crossbow, 0, 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Club = new(505, "Club", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Club2H = new(506, "Club2H", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF ClubAny = new(507, "ClubAny", script: "Pin(Club + Club2H, 0, 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Dagger = new(508, "Dagger", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Mace = new(509, "Mace", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Mace2H = new(510, "Mace2H", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF MaceAny = new(511, "MaceAny", script: "Pin(Mace + Mace2H, 0, 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Sword = new(512, "Sword", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Sword2H = new(513, "Sword2H", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF SwordAny = new(514, "SwordAny", script: "Pin(Sword + Sword2H, 0, 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Polearm = new(515, "Polearm", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Spear = new(516, "Spear", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Wand = new(517, "Wand", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF ColdStaff = new(518, "ColdStaff", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF FireStaff = new(519, "FireStaff", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF LightningStaff = new(520, "LightningStaff", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF PoisonStaff = new(521, "PoisonStaff", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF StaffAny = new(522, "StaffAny", script: "Pin(ColdStaff + FireStaff + LightningStaff + PoisonStaff, 0, 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Weapon1H = new(523, "Weapon1H", script: "Pin(Axe + Club + Dagger + Mace + Sword + Wand, 0, 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Weapon2H = new(524, "Weapon2H", script: "Pin(Axe2H + BowAny + Club2H + Mace2H + Sword2H + Polearm + Spear + StaffAny, 0, 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF WeaponMelee = new(525, "WeaponMelee", script: "Pin(Axe + Axe2H + ClubAny + Dagger + MaceAny + SwordAny + Polearm + Spear + Wand + StaffAny, 0, 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF WeaponRanged = new(526, "WeaponRanged", script: "Pin(ThrowingAxe + BowAny, 0, 1)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Quiver = new(527, "Quiver", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Reincarnation_Buff = new(528, "Reincarnation_Buff", defaultValue: -1); + public static readonly GameAttributeF Dead_Body_AnimTag = new(529, "Dead_Body_AnimTag", defaultValue: -1); + public static readonly GameAttributeI Spawned_by_ACDID = new(530, "Spawned_by_ACDID", defaultValue: -1); + public static readonly GameAttributeI Summoned_By_ACDID = new(531, "Summoned_By_ACDID", defaultValue: -1); + public static readonly GameAttributeI Summoner_ID = new(532, "Summoner_ID", defaultValue: -1); + public static readonly GameAttributeI Banner_ACDID = new(533, "Banner_ACDID", defaultValue: -1); + public static readonly GameAttributeF Breakable_Shield_HP = new(534, "Breakable_Shield_HP", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeI Current_WeaponClass = new(535, "Current_WeaponClass", defaultValue: -1, min: -1, max: 28, bitCount: 5); + public static readonly GameAttributeB Weapons_Sheathed = new(536, "Weapons_Sheathed"); + public static readonly GameAttributeB Held_In_OffHand = new(537, "Held_In_OffHand"); + public static readonly GameAttributeF Attacks_Per_Second_Item_MainHand = new(538, "Attacks_Per_Second_Item_MainHand", script: "(Held_In_OffHand ? 0 : Attacks_Per_Second_Item_Subtotal )", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Item_OffHand = new(539, "Attacks_Per_Second_Item_OffHand", script: "(Held_In_OffHand ? Attacks_Per_Second_Item_Subtotal : 0)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Item_Total_MainHand = new(540, "Attacks_Per_Second_Item_Total_MainHand", script: "Attacks_Per_Second_Item_MainHand + Attacks_Per_Second_Item_Bonus", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Item_Total_OffHand = new(541, "Attacks_Per_Second_Item_Total_OffHand", script: "Attacks_Per_Second_Item_OffHand + Attacks_Per_Second_Item_Bonus", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Min_Total_MainHand = new(542, "Damage_Weapon_Min_Total_MainHand", script: "(Held_In_OffHand#NONE ? 0 : Damage_Weapon_Min_Total )", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Min_Total_OffHand = new(543, "Damage_Weapon_Min_Total_OffHand", script: "(Held_In_OffHand#NONE ? Damage_Weapon_Min_Total : 0)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Delta_Total_MainHand = new(544, "Damage_Weapon_Delta_Total_MainHand", script: "(Held_In_OffHand#NONE ? 0 : Damage_Weapon_Delta_Total )", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Delta_Total_OffHand = new(545, "Damage_Weapon_Delta_Total_OffHand", script: "(Held_In_OffHand#NONE ? Damage_Weapon_Delta_Total : 0)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Attacks_Per_Second_Item_CurrentHand = new(546, "Attacks_Per_Second_Item_CurrentHand", script: "(DualWield_Hand ? Attacks_Per_Second_Item_OffHand : Attacks_Per_Second_Item_MainHand)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Min_Total_CurrentHand = new(547, "Damage_Weapon_Min_Total_CurrentHand", script: "(DualWield_Hand#NONE ? Damage_Weapon_Min_Total_OffHand : Damage_Weapon_Min_Total_MainHand)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Damage_Weapon_Delta_Total_CurrentHand = new(548, "Damage_Weapon_Delta_Total_CurrentHand", script: "(DualWield_Hand#NONE ? Damage_Weapon_Delta_Total_OffHand : Damage_Weapon_Delta_Total_MainHand)", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeF Has_Special_Death_AnimTag = new(549, "Has_Special_Death_AnimTag", defaultValue: -1); + public static readonly GameAttributeF Death_Type_Override = new(550, "Death_Type_Override", defaultValue: -1); + public static readonly GameAttributeB In_Combat = new(551, "In_Combat"); + public static readonly GameAttributeB In_Combat_Next_Tick_Check = new(552, "In_Combat_Next_Tick_Check"); + public static readonly GameAttributeB In_Conversation = new(553, "In_Conversation"); + public static readonly GameAttributeF Last_Tick_Potion_Used = new(554, "Last_Tick_Potion_Used", defaultValue: -1); + public static readonly GameAttributeF Potion_Dilution_Percent = new(555, "Potion_Dilution_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Out_Of_Combat_Health_Regen_Percent = new(556, "Out_Of_Combat_Health_Regen_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Out_Of_Combat_Mana_Regen_Percent = new(557, "Out_Of_Combat_Mana_Regen_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeI Potion_Dilution_Duration = new(558, "Potion_Dilution_Duration", defaultValue: -1, min: -1, max: 16777214, bitCount: 24); + public static readonly GameAttributeF Potion_Dilution_Scalar = new(559, "Potion_Dilution_Scalar", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Feared = new(560, "Feared"); + public static readonly GameAttributeB Fear_Immune = new(561, "Fear_Immune"); + public static readonly GameAttributeF Last_Damage_ACD = new(562, "Last_Damage_ACD", defaultValue: -1); + public static readonly GameAttributeF Attached_To_ACD = new(563, "Attached_To_ACD", defaultValue: -1); + public static readonly GameAttributeF Attachment_ACD = new(564, "Attachment_ACD", defaultValue: -1); + public static readonly GameAttributeF Normal_Attack_Replacement_Power_SNO = new(565, "Normal_Attack_Replacement_Power_SNO", defaultValue: -1); + public static readonly GameAttributeI Damage_Type_Override = new(566, "Damage_Type_Override", defaultValue: -1, min: -1, max: 6, bitCount: 3); + public static readonly GameAttributeF Minion_Count_Bonus_Percent = new(567, "Minion_Count_Bonus_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Expensive_Proc_Count = new(568, "Expensive_Proc_Count"); + public static readonly GameAttributeF Post_260A_Legendary_Gem_Cap = new(569, "Post_260A_Legendary_Gem_Cap"); + public static readonly GameAttributeB Pet_Dont_Kill_When_Entering_Rifts = new(570, "Pet_Dont_Kill_When_Entering_Rifts"); + public static readonly GameAttributeF Champion_Clone_Next_Tick = new(571, "Champion_Clone_Next_Tick"); + public static readonly GameAttributeF Champion_Clone_Time_Min_In_Seconds = new(572, "Champion_Clone_Time_Min_In_Seconds", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Champion_Clone_Time_Delta_In_Seconds = new(573, "Champion_Clone_Time_Delta_In_Seconds", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Champion_Clone_Hitpoint_Bonus_Percent = new(574, "Champion_Clone_Hitpoint_Bonus_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Champion_Clone_Damage_Bonus_Percent = new(575, "Champion_Clone_Damage_Bonus_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Champion_Ghostly_Next_Tick = new(576, "Champion_Ghostly_Next_Tick"); + public static readonly GameAttributeF Champion_Ghostly_Inactive_Time_Min_In_Seconds = new(577, "Champion_Ghostly_Inactive_Time_Min_In_Seconds", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Champion_Ghostly_Inactive_Time_Delta_In_Seconds = new(578, "Champion_Ghostly_Inactive_Time_Delta_In_Seconds", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Champion_Ghostly_Active_Time_Min_In_Seconds = new(579, "Champion_Ghostly_Active_Time_Min_In_Seconds", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Champion_Ghostly_Active_Time_Delta_In_Seconds = new(580, "Champion_Ghostly_Active_Time_Delta_In_Seconds", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Champion_Ghostly_Saved_Dodge_Chance = new(581, "Champion_Ghostly_Saved_Dodge_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Champion_Ghostly = new(582, "Champion_Ghostly"); + public static readonly GameAttributeI Base_Element = new(583, "Base_Element", defaultValue: -1, min: -1, max: 7, bitCount: 4); + public static readonly GameAttributeF Projectile_Amount_Bonus_Percent = new(584, "Projectile_Amount_Bonus_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Projectile_Reflect_Chance = new(585, "Projectile_Reflect_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Projectile_Reflect_Forced_Target = new(586, "Projectile_Reflect_Forced_Target", defaultValue: -1); + public static readonly GameAttributeF Projectile_Reflect_Damage_Scalar = new(587, "Projectile_Reflect_Damage_Scalar", defaultValue: 1065353216); + public static readonly GameAttributeB Projectile_Reflect_Has_Damage_Cap = new(588, "Projectile_Reflect_Has_Damage_Cap"); + public static readonly GameAttributeF Projectile_Reflect_Damage_Cap_Remaining = new(589, "Projectile_Reflect_Damage_Cap_Remaining"); + public static readonly GameAttributeF Attack_Fear_Chance = new(590, "Attack_Fear_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Attack_Fear_Time_Min = new(591, "Attack_Fear_Time_Min", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Attack_Fear_Time_Delta = new(592, "Attack_Fear_Time_Delta", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Buff_Visual_Effect = new(593, "Buff_Visual_Effect", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeI Buff_Icon_Start_Tick0 = new(594, "Buff_Icon_Start_Tick0"); + public static readonly GameAttributeI Buff_Icon_Start_Tick1 = new(595, "Buff_Icon_Start_Tick1"); + public static readonly GameAttributeI Buff_Icon_Start_Tick2 = new(596, "Buff_Icon_Start_Tick2"); + public static readonly GameAttributeI Buff_Icon_Start_Tick3 = new(597, "Buff_Icon_Start_Tick3"); + public static readonly GameAttributeI Buff_Icon_Start_Tick4 = new(598, "Buff_Icon_Start_Tick4"); + public static readonly GameAttributeI Buff_Icon_Start_Tick5 = new(599, "Buff_Icon_Start_Tick5"); + public static readonly GameAttributeI Buff_Icon_Start_Tick6 = new(600, "Buff_Icon_Start_Tick6"); + public static readonly GameAttributeI Buff_Icon_Start_Tick7 = new(601, "Buff_Icon_Start_Tick7"); + public static readonly GameAttributeI Buff_Icon_Start_Tick8 = new(602, "Buff_Icon_Start_Tick8"); + public static readonly GameAttributeI Buff_Icon_Start_Tick9 = new(603, "Buff_Icon_Start_Tick9"); + public static readonly GameAttributeI Buff_Icon_Start_Tick10 = new(604, "Buff_Icon_Start_Tick10"); + public static readonly GameAttributeI Buff_Icon_Start_Tick11 = new(605, "Buff_Icon_Start_Tick11"); + public static readonly GameAttributeI Buff_Icon_Start_Tick12 = new(606, "Buff_Icon_Start_Tick12"); + public static readonly GameAttributeI Buff_Icon_Start_Tick13 = new(607, "Buff_Icon_Start_Tick13"); + public static readonly GameAttributeI Buff_Icon_Start_Tick14 = new(608, "Buff_Icon_Start_Tick14"); + public static readonly GameAttributeI Buff_Icon_Start_Tick15 = new(609, "Buff_Icon_Start_Tick15"); + public static readonly GameAttributeI Buff_Icon_Start_Tick16 = new(610, "Buff_Icon_Start_Tick16"); + public static readonly GameAttributeI Buff_Icon_Start_Tick17 = new(611, "Buff_Icon_Start_Tick17"); + public static readonly GameAttributeI Buff_Icon_Start_Tick18 = new(612, "Buff_Icon_Start_Tick18"); + public static readonly GameAttributeI Buff_Icon_Start_Tick19 = new(613, "Buff_Icon_Start_Tick19"); + public static readonly GameAttributeI Buff_Icon_Start_Tick20 = new(614, "Buff_Icon_Start_Tick20"); + public static readonly GameAttributeI Buff_Icon_Start_Tick21 = new(615, "Buff_Icon_Start_Tick21"); + public static readonly GameAttributeI Buff_Icon_Start_Tick22 = new(616, "Buff_Icon_Start_Tick22"); + public static readonly GameAttributeI Buff_Icon_Start_Tick23 = new(617, "Buff_Icon_Start_Tick23"); + public static readonly GameAttributeI Buff_Icon_Start_Tick24 = new(618, "Buff_Icon_Start_Tick24"); + public static readonly GameAttributeI Buff_Icon_Start_Tick25 = new(619, "Buff_Icon_Start_Tick25"); + public static readonly GameAttributeI Buff_Icon_Start_Tick26 = new(620, "Buff_Icon_Start_Tick26"); + public static readonly GameAttributeI Buff_Icon_Start_Tick27 = new(621, "Buff_Icon_Start_Tick27"); + public static readonly GameAttributeI Buff_Icon_Start_Tick28 = new(622, "Buff_Icon_Start_Tick28"); + public static readonly GameAttributeI Buff_Icon_Start_Tick29 = new(623, "Buff_Icon_Start_Tick29"); + public static readonly GameAttributeI Buff_Icon_Start_Tick30 = new(624, "Buff_Icon_Start_Tick30"); + public static readonly GameAttributeI Buff_Icon_Start_Tick31 = new(625, "Buff_Icon_Start_Tick31"); + public static readonly GameAttributeI Buff_Icon_End_Tick0 = new(626, "Buff_Icon_End_Tick0"); + public static readonly GameAttributeI Buff_Icon_End_Tick1 = new(627, "Buff_Icon_End_Tick1"); + public static readonly GameAttributeI Buff_Icon_End_Tick2 = new(628, "Buff_Icon_End_Tick2"); + public static readonly GameAttributeI Buff_Icon_End_Tick3 = new(629, "Buff_Icon_End_Tick3"); + public static readonly GameAttributeI Buff_Icon_End_Tick4 = new(630, "Buff_Icon_End_Tick4"); + public static readonly GameAttributeI Buff_Icon_End_Tick5 = new(631, "Buff_Icon_End_Tick5"); + public static readonly GameAttributeI Buff_Icon_End_Tick6 = new(632, "Buff_Icon_End_Tick6"); + public static readonly GameAttributeI Buff_Icon_End_Tick7 = new(633, "Buff_Icon_End_Tick7"); + public static readonly GameAttributeI Buff_Icon_End_Tick8 = new(634, "Buff_Icon_End_Tick8"); + public static readonly GameAttributeI Buff_Icon_End_Tick9 = new(635, "Buff_Icon_End_Tick9"); + public static readonly GameAttributeI Buff_Icon_End_Tick10 = new(636, "Buff_Icon_End_Tick10"); + public static readonly GameAttributeI Buff_Icon_End_Tick11 = new(637, "Buff_Icon_End_Tick11"); + public static readonly GameAttributeI Buff_Icon_End_Tick12 = new(638, "Buff_Icon_End_Tick12"); + public static readonly GameAttributeI Buff_Icon_End_Tick13 = new(639, "Buff_Icon_End_Tick13"); + public static readonly GameAttributeI Buff_Icon_End_Tick14 = new(640, "Buff_Icon_End_Tick14"); + public static readonly GameAttributeI Buff_Icon_End_Tick15 = new(641, "Buff_Icon_End_Tick15"); + public static readonly GameAttributeI Buff_Icon_End_Tick16 = new(642, "Buff_Icon_End_Tick16"); + public static readonly GameAttributeI Buff_Icon_End_Tick17 = new(643, "Buff_Icon_End_Tick17"); + public static readonly GameAttributeI Buff_Icon_End_Tick18 = new(644, "Buff_Icon_End_Tick18"); + public static readonly GameAttributeI Buff_Icon_End_Tick19 = new(645, "Buff_Icon_End_Tick19"); + public static readonly GameAttributeI Buff_Icon_End_Tick20 = new(646, "Buff_Icon_End_Tick20"); + public static readonly GameAttributeI Buff_Icon_End_Tick21 = new(647, "Buff_Icon_End_Tick21"); + public static readonly GameAttributeI Buff_Icon_End_Tick22 = new(648, "Buff_Icon_End_Tick22"); + public static readonly GameAttributeI Buff_Icon_End_Tick23 = new(649, "Buff_Icon_End_Tick23"); + public static readonly GameAttributeI Buff_Icon_End_Tick24 = new(650, "Buff_Icon_End_Tick24"); + public static readonly GameAttributeI Buff_Icon_End_Tick25 = new(651, "Buff_Icon_End_Tick25"); + public static readonly GameAttributeI Buff_Icon_End_Tick26 = new(652, "Buff_Icon_End_Tick26"); + public static readonly GameAttributeI Buff_Icon_End_Tick27 = new(653, "Buff_Icon_End_Tick27"); + public static readonly GameAttributeI Buff_Icon_End_Tick28 = new(654, "Buff_Icon_End_Tick28"); + public static readonly GameAttributeI Buff_Icon_End_Tick29 = new(655, "Buff_Icon_End_Tick29"); + public static readonly GameAttributeI Buff_Icon_End_Tick30 = new(656, "Buff_Icon_End_Tick30"); + public static readonly GameAttributeI Buff_Icon_End_Tick31 = new(657, "Buff_Icon_End_Tick31"); + public static readonly GameAttributeB Could_Have_Ragdolled = new(658, "Could_Have_Ragdolled"); + public static readonly GameAttributeF Ambient_Damage_Effect_Last_Time = new(659, "Ambient_Damage_Effect_Last_Time"); + public static readonly GameAttributeF Scale_Bonus = new(660, "Scale_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Scale_Bonus_Is_Immediate = new(661, "Scale_Bonus_Is_Immediate"); + public static readonly GameAttributeB Deleted_On_Server = new(662, "Deleted_On_Server"); + public static readonly GameAttributeF Scripted_Fade_Time = new(663, "Scripted_Fade_Time"); + public static readonly GameAttributeB Does_No_Damage = new(664, "Does_No_Damage"); + public static readonly GameAttributeB Does_Fake_Damage = new(665, "Does_Fake_Damage"); + public static readonly GameAttributeF SlowTime_Debuff = new(666, "SlowTime_Debuff", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Blocks_Projectiles = new(667, "Blocks_Projectiles"); + public static readonly GameAttributeB Frozen = new(668, "Frozen"); + public static readonly GameAttributeF Freeze_Damage_Percent_Bonus = new(669, "Freeze_Damage_Percent_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Shatter_Chance = new(670, "Shatter_Chance"); + public static readonly GameAttributeF DualWield_BothAttack_Chance = new(671, "DualWield_BothAttack_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Summon_Expiration_Tick = new(672, "Summon_Expiration_Tick"); + public static readonly GameAttributeF Summon_Count = new(673, "Summon_Count"); + public static readonly GameAttributeB Uninterruptible = new(674, "Uninterruptible"); + public static readonly GameAttributeB QueueDeath = new(675, "QueueDeath"); + public static readonly GameAttributeB CantStartDisplayedPowers = new(676, "CantStartDisplayedPowers"); + public static readonly GameAttributeB GizmosIgnoreCantStartDisplayedPowers = new(677, "GizmosIgnoreCantStartDisplayedPowers"); + public static readonly GameAttributeF Wizard_Slowtime_Proxy_ACD = new(678, "Wizard_Slowtime_Proxy_ACD", defaultValue: -1); + public static readonly GameAttributeF DPS = new(679, "DPS", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Resurrection_Power = new(680, "Resurrection_Power", defaultValue: -1); + public static readonly GameAttributeF Freeze_Damage = new(681, "Freeze_Damage", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Freeze_Capacity = new(682, "Freeze_Capacity", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Thaw_Rate = new(683, "Thaw_Rate", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Chilled_Dur_Bonus_Percent = new(684, "Chilled_Dur_Bonus_Percent", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF DOT_DPS = new(685, "DOT_DPS", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF DamageCap_Percent = new(686, "DamageCap_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Item_Time_Sold = new(687, "Item_Time_Sold"); + public static readonly GameAttributeF Forced_Hireling_Power = new(688, "Forced_Hireling_Power", defaultValue: -1); + public static readonly GameAttributeB IsRooted = new(689, "IsRooted"); + public static readonly GameAttributeF RootTargetACD = new(690, "RootTargetACD", defaultValue: -1); + public static readonly GameAttributeF RootAutoDecayPerSecond = new(691, "RootAutoDecayPerSecond", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF RootUnitValue = new(692, "RootUnitValue", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF RootTotalTicks = new(693, "RootTotalTicks"); + public static readonly GameAttributeB Hide_Affixes = new(694, "Hide_Affixes"); + public static readonly GameAttributeI Rune_A = new(695, "Rune_A", max: 255, bitCount: 8); + public static readonly GameAttributeI Rune_B = new(696, "Rune_B", max: 255, bitCount: 8); + public static readonly GameAttributeI Rune_C = new(697, "Rune_C", max: 255, bitCount: 8); + public static readonly GameAttributeI Rune_D = new(698, "Rune_D", max: 255, bitCount: 8); + public static readonly GameAttributeI Rune_E = new(699, "Rune_E", max: 255, bitCount: 8); + public static readonly GameAttributeF Resistance_Stun = new(700, "Resistance_Stun", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Resistance_Stun_Total = new(701, "Resistance_Stun_Total", encodingType: GameAttributeEncoding.Float16, script: "Resistance_Stun + Resistance_StunRootFreeze", bitCount: 16); + public static readonly GameAttributeF Resistance_Root = new(702, "Resistance_Root", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Resistance_Root_Total = new(703, "Resistance_Root_Total", encodingType: GameAttributeEncoding.Float16, script: "Resistance_Root + Resistance_StunRootFreeze", bitCount: 16); + public static readonly GameAttributeF Resistance_Freeze = new(704, "Resistance_Freeze", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Resistance_Freeze_Total = new(705, "Resistance_Freeze_Total", encodingType: GameAttributeEncoding.Float16, script: "Resistance_Freeze + Resistance_StunRootFreeze", bitCount: 16); + public static readonly GameAttributeF Resistance_StunRootFreeze = new(706, "Resistance_StunRootFreeze", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF CrowdControl_Reduction = new(707, "CrowdControl_Reduction", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeB Displays_Team_Effect = new(708, "Displays_Team_Effect"); + public static readonly GameAttributeB Cannot_Be_Added_To_AI_Target_List = new(709, "Cannot_Be_Added_To_AI_Target_List"); + public static readonly GameAttributeI SkillKit = new(710, "SkillKit", defaultValue: -1, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeB Immune_To_Charm = new(711, "Immune_To_Charm"); + public static readonly GameAttributeB Immune_To_Blind = new(712, "Immune_To_Blind"); + public static readonly GameAttributeB Damage_Shield = new(713, "Damage_Shield"); + public static readonly GameAttributeF Damage_Shield_Amount = new(714, "Damage_Shield_Amount"); + public static readonly GameAttributeF Guard_Object_ACDID = new(715, "Guard_Object_ACDID", defaultValue: -1); + public static readonly GameAttributeF Follow_Target_ACDID = new(716, "Follow_Target_ACDID", defaultValue: -1); + public static readonly GameAttributeI Follow_Target_Type = new(717, "Follow_Target_Type", max: 2, bitCount: 2); + public static readonly GameAttributeF Forced_Enemy_ACDID = new(718, "Forced_Enemy_ACDID", defaultValue: -1); + public static readonly GameAttributeF NPC_Talk_Target_ANN = new(719, "NPC_Talk_Target_ANN", defaultValue: -1); + public static readonly GameAttributeF NPC_Conv_Target_ANN = new(720, "NPC_Conv_Target_ANN", defaultValue: -1); + public static readonly GameAttributeF Script_Target_ACDID = new(721, "Script_Target_ACDID", defaultValue: -1); + public static readonly GameAttributeF Look_Target_Server_ANN = new(722, "Look_Target_Server_ANN", defaultValue: -1); + public static readonly GameAttributeF Look_Target_Broadcast_Intensity = new(723, "Look_Target_Broadcast_Intensity", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Look_Target_Broadcast_Radius = new(724, "Look_Target_Broadcast_Radius", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Stealthed = new(725, "Stealthed"); + public static readonly GameAttributeI GemQuality = new(726, "GemQuality", max: 32, bitCount: 6); + public static readonly GameAttributeF Gem_Attributes_Multiplier = new(727, "Gem_Attributes_Multiplier", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF ItemBuffIcon = new(728, "ItemBuffIcon"); + public static readonly GameAttributeF ScrollDuration = new(729, "ScrollDuration", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Gizmo_Actor_SNO_To_Spawn = new(730, "Gizmo_Actor_SNO_To_Spawn", defaultValue: -1); + public static readonly GameAttributeF Gizmo_Actor_To_Spawn_Scale = new(731, "Gizmo_Actor_To_Spawn_Scale", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Death_Replacement_Power_SNO = new(732, "Death_Replacement_Power_SNO", defaultValue: -1); + public static readonly GameAttributeB Attachment_Handled_By_Client = new(733, "Attachment_Handled_By_Client"); + public static readonly GameAttributeB AI_In_Special_State = new(734, "AI_In_Special_State"); + public static readonly GameAttributeB AI_Used_Scripted_Spawn_Anim = new(735, "AI_Used_Scripted_Spawn_Anim"); + public static readonly GameAttributeB AI_Spawned_By_Inactive_Marker = new(736, "AI_Spawned_By_Inactive_Marker"); + public static readonly GameAttributeF Headstone_Player_ANN = new(737, "Headstone_Player_ANN", defaultValue: -1); + public static readonly GameAttributeF Resource_Cost_Reduction_Percent = new(738, "Resource_Cost_Reduction_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Resource_Cost_Reduction_Percent_Total = new(739, "Resource_Cost_Reduction_Percent_Total"); + public static readonly GameAttributeF Resource_Cost_Reduction_Percent_All = new(740, "Resource_Cost_Reduction_Percent_All", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Damage_Type_Cost_Reduction_Percent = new(741, "Damage_Type_Cost_Reduction_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Resistance_Penetration = new(742, "Resistance_Penetration", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Resistance_Penetration_Total = new(743, "Resistance_Penetration_Total", encodingType: GameAttributeEncoding.Float16, script: "(Resistance_Penetration + Resistance_Penetration_All#NONE) * (Resistance_Penetration_Percent_All#NONE + 1)", bitCount: 16); + public static readonly GameAttributeF Resistance_Penetration_All = new(744, "Resistance_Penetration_All", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Resistance_Penetration_Percent_All = new(745, "Resistance_Penetration_Percent_All", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Fury_Effect_Level = new(746, "Fury_Effect_Level"); + public static readonly GameAttributeF Health_Potion_Bonus_Heal_Percent = new(747, "Health_Potion_Bonus_Heal_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Health_Potion_Affects_Allies_Percent = new(748, "Health_Potion_Affects_Allies_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Free_Cast = new(749, "Free_Cast"); + public static readonly GameAttributeB Free_Cast_All = new(750, "Free_Cast_All"); + public static readonly GameAttributeF Health_Cost_Discount = new(751, "Health_Cost_Discount", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Health_Cost_Scalar = new(752, "Health_Cost_Scalar", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Frailty_Health_Threshold = new(753, "Frailty_Health_Threshold", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Frailty_Next_Application_Tick = new(754, "Frailty_Next_Application_Tick"); + public static readonly GameAttributeF Movement_Scalar_Reduction_Percent = new(755, "Movement_Scalar_Reduction_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Movement_Scalar_Reduction_Resistance = new(756, "Movement_Scalar_Reduction_Resistance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Damage_Absorb_Percent_All = new(757, "Damage_Absorb_Percent_All", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF World_Seed = new(758, "World_Seed"); + public static readonly GameAttributeI Kill_Count_Record = new(759, "Kill_Count_Record", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Object_Destruction_Record = new(760, "Object_Destruction_Record", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Single_Attack_Record = new(761, "Single_Attack_Record", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Environment_Attack_Record = new(762, "Environment_Attack_Record", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Nephalem_Glory_Duration_Record = new(763, "Nephalem_Glory_Duration_Record", max: 16777215, bitCount: 24); + public static readonly GameAttributeB Root_Immune = new(764, "Root_Immune"); + public static readonly GameAttributeF Monster_Play_Get_Hit_Bonus = new(765, "Monster_Play_Get_Hit_Bonus", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeI Stored_Contact_Frame = new(766, "Stored_Contact_Frame", max: 4, bitCount: 3); + public static readonly GameAttributeI Buff_Icon_Count0 = new(767, "Buff_Icon_Count0", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count1 = new(768, "Buff_Icon_Count1", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count2 = new(769, "Buff_Icon_Count2", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count3 = new(770, "Buff_Icon_Count3", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count4 = new(771, "Buff_Icon_Count4", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count5 = new(772, "Buff_Icon_Count5", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count6 = new(773, "Buff_Icon_Count6", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count7 = new(774, "Buff_Icon_Count7", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count8 = new(775, "Buff_Icon_Count8", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count9 = new(776, "Buff_Icon_Count9", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count10 = new(777, "Buff_Icon_Count10", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count11 = new(778, "Buff_Icon_Count11", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count12 = new(779, "Buff_Icon_Count12", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count13 = new(780, "Buff_Icon_Count13", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count14 = new(781, "Buff_Icon_Count14", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count15 = new(782, "Buff_Icon_Count15", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count16 = new(783, "Buff_Icon_Count16", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count17 = new(784, "Buff_Icon_Count17", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count18 = new(785, "Buff_Icon_Count18", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count19 = new(786, "Buff_Icon_Count19", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count20 = new(787, "Buff_Icon_Count20", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count21 = new(788, "Buff_Icon_Count21", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count22 = new(789, "Buff_Icon_Count22", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count23 = new(790, "Buff_Icon_Count23", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count24 = new(791, "Buff_Icon_Count24", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count25 = new(792, "Buff_Icon_Count25", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count26 = new(793, "Buff_Icon_Count26", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count27 = new(794, "Buff_Icon_Count27", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count28 = new(795, "Buff_Icon_Count28", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count29 = new(796, "Buff_Icon_Count29", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count30 = new(797, "Buff_Icon_Count30", max: 16777215, bitCount: 24); + public static readonly GameAttributeI Buff_Icon_Count31 = new(798, "Buff_Icon_Count31", max: 16777215, bitCount: 24); + public static readonly GameAttributeB Observer = new(799, "Observer"); + public static readonly GameAttributeB Resurrect_As_Observer = new(800, "Resurrect_As_Observer"); + public static readonly GameAttributeI Combo_Level = new(801, "Combo_Level", max: 3, bitCount: 2); + public static readonly GameAttributeF Combo_Time_Last_Move = new(802, "Combo_Time_Last_Move"); + public static readonly GameAttributeB Burrowed = new(803, "Burrowed"); + public static readonly GameAttributeF Death_Replacement_Effect_Group_SNO = new(804, "Death_Replacement_Effect_Group_SNO", defaultValue: -1); + public static readonly GameAttributeI Checkpoint_Resurrection_Allowed_Game_Time = new(805, "Checkpoint_Resurrection_Allowed_Game_Time"); + public static readonly GameAttributeI Checkpoint_Resurrection_Forced_Game_Time = new(806, "Checkpoint_Resurrection_Forced_Game_Time"); + public static readonly GameAttributeI Corpse_Resurrection_Allowed_Game_Time = new(807, "Corpse_Resurrection_Allowed_Game_Time"); + public static readonly GameAttributeI Corpse_Resurrection_Charges = new(808, "Corpse_Resurrection_Charges", max: 15, bitCount: 4); + public static readonly GameAttributeB Corpse_Resurrection_Disabled = new(809, "Corpse_Resurrection_Disabled"); + public static readonly GameAttributeF Controlling_TimedEvent_SNO = new(810, "Controlling_TimedEvent_SNO", defaultValue: -1); + public static readonly GameAttributeF Casting_Speed_Percent = new(811, "Casting_Speed_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB using_Bossbar = new(812, "using_Bossbar"); + public static readonly GameAttributeB Power_Buff_0_Visual_Effect = new(813, "Power_Buff_0_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_1_Visual_Effect = new(814, "Power_Buff_1_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_2_Visual_Effect = new(815, "Power_Buff_2_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_3_Visual_Effect = new(816, "Power_Buff_3_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_4_Visual_Effect = new(817, "Power_Buff_4_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_5_Visual_Effect = new(818, "Power_Buff_5_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_6_Visual_Effect = new(819, "Power_Buff_6_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_7_Visual_Effect = new(820, "Power_Buff_7_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_8_Visual_Effect = new(821, "Power_Buff_8_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_9_Visual_Effect = new(822, "Power_Buff_9_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_10_Visual_Effect = new(823, "Power_Buff_10_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_11_Visual_Effect = new(824, "Power_Buff_11_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_12_Visual_Effect = new(825, "Power_Buff_12_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_13_Visual_Effect = new(826, "Power_Buff_13_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_14_Visual_Effect = new(827, "Power_Buff_14_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_15_Visual_Effect = new(828, "Power_Buff_15_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_16_Visual_Effect = new(829, "Power_Buff_16_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_17_Visual_Effect = new(830, "Power_Buff_17_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_18_Visual_Effect = new(831, "Power_Buff_18_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_19_Visual_Effect = new(832, "Power_Buff_19_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_20_Visual_Effect = new(833, "Power_Buff_20_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_21_Visual_Effect = new(834, "Power_Buff_21_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_22_Visual_Effect = new(835, "Power_Buff_22_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_23_Visual_Effect = new(836, "Power_Buff_23_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_24_Visual_Effect = new(837, "Power_Buff_24_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_25_Visual_Effect = new(838, "Power_Buff_25_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_26_Visual_Effect = new(839, "Power_Buff_26_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_27_Visual_Effect = new(840, "Power_Buff_27_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_28_Visual_Effect = new(841, "Power_Buff_28_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_29_Visual_Effect = new(842, "Power_Buff_29_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_30_Visual_Effect = new(843, "Power_Buff_30_Visual_Effect"); + public static readonly GameAttributeB Power_Buff_31_Visual_Effect = new(844, "Power_Buff_31_Visual_Effect"); + public static readonly GameAttributeF StoreSNO = new(845, "StoreSNO"); + public static readonly GameAttributeB Busy = new(846, "Busy"); + public static readonly GameAttributeB Afk = new(847, "Afk"); + public static readonly GameAttributeB LorePlaying = new(848, "LorePlaying"); + public static readonly GameAttributeF LastActionTimestamp = new(849, "LastActionTimestamp"); + public static readonly GameAttributeF PortalNextTime = new(850, "PortalNextTime"); + public static readonly GameAttributeF Repair_Discount_Percent = new(851, "Repair_Discount_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Resource_Degeneration_Prevented = new(852, "Resource_Degeneration_Prevented"); + public static readonly GameAttributeB Operatable = new(853, "Operatable"); + public static readonly GameAttributeB Has_Look_Override = new(854, "Has_Look_Override"); + public static readonly GameAttributeF Spawner_Concurrent_Count_ID = new(855, "Spawner_Concurrent_Count_ID", defaultValue: -1); + public static readonly GameAttributeB Disabled = new(856, "Disabled"); + public static readonly GameAttributeI Skill_Override = new(857, "Skill_Override", defaultValue: -1, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeB Skill_Override_Active = new(858, "Skill_Override_Active"); + public static readonly GameAttributeB Skill_Override_Ended = new(859, "Skill_Override_Ended"); + public static readonly GameAttributeB Skill_Override_Ended_Active = new(860, "Skill_Override_Ended_Active"); + public static readonly GameAttributeB Is_Power_Proxy = new(861, "Is_Power_Proxy"); + public static readonly GameAttributeB Force_No_Death_Animation = new(862, "Force_No_Death_Animation"); + public static readonly GameAttributeI Player_WeaponClass_Anim_Override = new(863, "Player_WeaponClass_Anim_Override", defaultValue: -1, min: -1, max: 28, bitCount: 5); + public static readonly GameAttributeB Operatable_Story_Gizmo = new(864, "Operatable_Story_Gizmo"); + public static readonly GameAttributeB Power_Buff_0_Visual_Effect_None = new(865, "Power_Buff_0_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_0_Visual_Effect_A = new(866, "Power_Buff_0_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_0_Visual_Effect_B = new(867, "Power_Buff_0_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_0_Visual_Effect_C = new(868, "Power_Buff_0_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_0_Visual_Effect_D = new(869, "Power_Buff_0_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_0_Visual_Effect_E = new(870, "Power_Buff_0_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_1_Visual_Effect_None = new(871, "Power_Buff_1_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_1_Visual_Effect_A = new(872, "Power_Buff_1_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_1_Visual_Effect_B = new(873, "Power_Buff_1_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_1_Visual_Effect_C = new(874, "Power_Buff_1_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_1_Visual_Effect_D = new(875, "Power_Buff_1_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_1_Visual_Effect_E = new(876, "Power_Buff_1_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_2_Visual_Effect_None = new(877, "Power_Buff_2_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_2_Visual_Effect_A = new(878, "Power_Buff_2_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_2_Visual_Effect_B = new(879, "Power_Buff_2_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_2_Visual_Effect_C = new(880, "Power_Buff_2_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_2_Visual_Effect_D = new(881, "Power_Buff_2_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_2_Visual_Effect_E = new(882, "Power_Buff_2_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_3_Visual_Effect_None = new(883, "Power_Buff_3_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_3_Visual_Effect_A = new(884, "Power_Buff_3_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_3_Visual_Effect_B = new(885, "Power_Buff_3_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_3_Visual_Effect_C = new(886, "Power_Buff_3_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_3_Visual_Effect_D = new(887, "Power_Buff_3_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_3_Visual_Effect_E = new(888, "Power_Buff_3_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_4_Visual_Effect_None = new(889, "Power_Buff_4_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_4_Visual_Effect_A = new(890, "Power_Buff_4_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_4_Visual_Effect_B = new(891, "Power_Buff_4_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_4_Visual_Effect_C = new(892, "Power_Buff_4_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_4_Visual_Effect_D = new(893, "Power_Buff_4_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_4_Visual_Effect_E = new(894, "Power_Buff_4_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_5_Visual_Effect_None = new(895, "Power_Buff_5_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_5_Visual_Effect_A = new(896, "Power_Buff_5_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_5_Visual_Effect_B = new(897, "Power_Buff_5_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_5_Visual_Effect_C = new(898, "Power_Buff_5_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_5_Visual_Effect_D = new(899, "Power_Buff_5_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_5_Visual_Effect_E = new(900, "Power_Buff_5_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_6_Visual_Effect_None = new(901, "Power_Buff_6_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_6_Visual_Effect_A = new(902, "Power_Buff_6_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_6_Visual_Effect_B = new(903, "Power_Buff_6_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_6_Visual_Effect_C = new(904, "Power_Buff_6_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_6_Visual_Effect_D = new(905, "Power_Buff_6_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_6_Visual_Effect_E = new(906, "Power_Buff_6_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_7_Visual_Effect_None = new(907, "Power_Buff_7_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_7_Visual_Effect_A = new(908, "Power_Buff_7_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_7_Visual_Effect_B = new(909, "Power_Buff_7_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_7_Visual_Effect_C = new(910, "Power_Buff_7_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_7_Visual_Effect_D = new(911, "Power_Buff_7_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_7_Visual_Effect_E = new(912, "Power_Buff_7_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_8_Visual_Effect_None = new(913, "Power_Buff_8_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_8_Visual_Effect_A = new(914, "Power_Buff_8_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_8_Visual_Effect_B = new(915, "Power_Buff_8_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_8_Visual_Effect_C = new(916, "Power_Buff_8_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_8_Visual_Effect_D = new(917, "Power_Buff_8_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_8_Visual_Effect_E = new(918, "Power_Buff_8_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_9_Visual_Effect_None = new(919, "Power_Buff_9_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_9_Visual_Effect_A = new(920, "Power_Buff_9_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_9_Visual_Effect_B = new(921, "Power_Buff_9_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_9_Visual_Effect_C = new(922, "Power_Buff_9_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_9_Visual_Effect_D = new(923, "Power_Buff_9_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_9_Visual_Effect_E = new(924, "Power_Buff_9_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_10_Visual_Effect_None = new(925, "Power_Buff_10_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_10_Visual_Effect_A = new(926, "Power_Buff_10_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_10_Visual_Effect_B = new(927, "Power_Buff_10_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_10_Visual_Effect_C = new(928, "Power_Buff_10_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_10_Visual_Effect_D = new(929, "Power_Buff_10_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_10_Visual_Effect_E = new(930, "Power_Buff_10_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_11_Visual_Effect_None = new(931, "Power_Buff_11_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_11_Visual_Effect_A = new(932, "Power_Buff_11_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_11_Visual_Effect_B = new(933, "Power_Buff_11_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_11_Visual_Effect_C = new(934, "Power_Buff_11_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_11_Visual_Effect_D = new(935, "Power_Buff_11_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_11_Visual_Effect_E = new(936, "Power_Buff_11_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_12_Visual_Effect_None = new(937, "Power_Buff_12_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_12_Visual_Effect_A = new(938, "Power_Buff_12_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_12_Visual_Effect_B = new(939, "Power_Buff_12_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_12_Visual_Effect_C = new(940, "Power_Buff_12_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_12_Visual_Effect_D = new(941, "Power_Buff_12_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_12_Visual_Effect_E = new(942, "Power_Buff_12_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_13_Visual_Effect_None = new(943, "Power_Buff_13_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_13_Visual_Effect_A = new(944, "Power_Buff_13_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_13_Visual_Effect_B = new(945, "Power_Buff_13_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_13_Visual_Effect_C = new(946, "Power_Buff_13_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_13_Visual_Effect_D = new(947, "Power_Buff_13_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_13_Visual_Effect_E = new(948, "Power_Buff_13_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_14_Visual_Effect_None = new(949, "Power_Buff_14_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_14_Visual_Effect_A = new(950, "Power_Buff_14_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_14_Visual_Effect_B = new(951, "Power_Buff_14_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_14_Visual_Effect_C = new(952, "Power_Buff_14_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_14_Visual_Effect_D = new(953, "Power_Buff_14_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_14_Visual_Effect_E = new(954, "Power_Buff_14_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_15_Visual_Effect_None = new(955, "Power_Buff_15_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_15_Visual_Effect_A = new(956, "Power_Buff_15_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_15_Visual_Effect_B = new(957, "Power_Buff_15_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_15_Visual_Effect_C = new(958, "Power_Buff_15_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_15_Visual_Effect_D = new(959, "Power_Buff_15_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_15_Visual_Effect_E = new(960, "Power_Buff_15_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_16_Visual_Effect_None = new(961, "Power_Buff_16_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_16_Visual_Effect_A = new(962, "Power_Buff_16_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_16_Visual_Effect_B = new(963, "Power_Buff_16_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_16_Visual_Effect_C = new(964, "Power_Buff_16_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_16_Visual_Effect_D = new(965, "Power_Buff_16_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_16_Visual_Effect_E = new(966, "Power_Buff_16_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_17_Visual_Effect_None = new(967, "Power_Buff_17_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_17_Visual_Effect_A = new(968, "Power_Buff_17_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_17_Visual_Effect_B = new(969, "Power_Buff_17_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_17_Visual_Effect_C = new(970, "Power_Buff_17_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_17_Visual_Effect_D = new(971, "Power_Buff_17_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_17_Visual_Effect_E = new(972, "Power_Buff_17_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_18_Visual_Effect_None = new(973, "Power_Buff_18_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_18_Visual_Effect_A = new(974, "Power_Buff_18_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_18_Visual_Effect_B = new(975, "Power_Buff_18_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_18_Visual_Effect_C = new(976, "Power_Buff_18_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_18_Visual_Effect_D = new(977, "Power_Buff_18_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_18_Visual_Effect_E = new(978, "Power_Buff_18_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_19_Visual_Effect_None = new(979, "Power_Buff_19_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_19_Visual_Effect_A = new(980, "Power_Buff_19_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_19_Visual_Effect_B = new(981, "Power_Buff_19_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_19_Visual_Effect_C = new(982, "Power_Buff_19_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_19_Visual_Effect_D = new(983, "Power_Buff_19_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_19_Visual_Effect_E = new(984, "Power_Buff_19_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_20_Visual_Effect_None = new(985, "Power_Buff_20_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_20_Visual_Effect_A = new(986, "Power_Buff_20_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_20_Visual_Effect_B = new(987, "Power_Buff_20_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_20_Visual_Effect_C = new(988, "Power_Buff_20_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_20_Visual_Effect_D = new(989, "Power_Buff_20_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_20_Visual_Effect_E = new(990, "Power_Buff_20_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_21_Visual_Effect_None = new(991, "Power_Buff_21_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_21_Visual_Effect_A = new(992, "Power_Buff_21_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_21_Visual_Effect_B = new(993, "Power_Buff_21_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_21_Visual_Effect_C = new(994, "Power_Buff_21_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_21_Visual_Effect_D = new(995, "Power_Buff_21_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_21_Visual_Effect_E = new(996, "Power_Buff_21_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_22_Visual_Effect_None = new(997, "Power_Buff_22_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_22_Visual_Effect_A = new(998, "Power_Buff_22_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_22_Visual_Effect_B = new(999, "Power_Buff_22_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_22_Visual_Effect_C = new(1000, "Power_Buff_22_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_22_Visual_Effect_D = new(1001, "Power_Buff_22_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_22_Visual_Effect_E = new(1002, "Power_Buff_22_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_23_Visual_Effect_None = new(1003, "Power_Buff_23_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_23_Visual_Effect_A = new(1004, "Power_Buff_23_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_23_Visual_Effect_B = new(1005, "Power_Buff_23_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_23_Visual_Effect_C = new(1006, "Power_Buff_23_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_23_Visual_Effect_D = new(1007, "Power_Buff_23_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_23_Visual_Effect_E = new(1008, "Power_Buff_23_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_24_Visual_Effect_None = new(1009, "Power_Buff_24_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_24_Visual_Effect_A = new(1010, "Power_Buff_24_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_24_Visual_Effect_B = new(1011, "Power_Buff_24_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_24_Visual_Effect_C = new(1012, "Power_Buff_24_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_24_Visual_Effect_D = new(1013, "Power_Buff_24_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_24_Visual_Effect_E = new(1014, "Power_Buff_24_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_25_Visual_Effect_None = new(1015, "Power_Buff_25_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_25_Visual_Effect_A = new(1016, "Power_Buff_25_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_25_Visual_Effect_B = new(1017, "Power_Buff_25_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_25_Visual_Effect_C = new(1018, "Power_Buff_25_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_25_Visual_Effect_D = new(1019, "Power_Buff_25_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_25_Visual_Effect_E = new(1020, "Power_Buff_25_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_26_Visual_Effect_None = new(1021, "Power_Buff_26_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_26_Visual_Effect_A = new(1022, "Power_Buff_26_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_26_Visual_Effect_B = new(1023, "Power_Buff_26_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_26_Visual_Effect_C = new(1024, "Power_Buff_26_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_26_Visual_Effect_D = new(1025, "Power_Buff_26_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_26_Visual_Effect_E = new(1026, "Power_Buff_26_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_27_Visual_Effect_None = new(1027, "Power_Buff_27_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_27_Visual_Effect_A = new(1028, "Power_Buff_27_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_27_Visual_Effect_B = new(1029, "Power_Buff_27_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_27_Visual_Effect_C = new(1030, "Power_Buff_27_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_27_Visual_Effect_D = new(1031, "Power_Buff_27_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_27_Visual_Effect_E = new(1032, "Power_Buff_27_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_28_Visual_Effect_None = new(1033, "Power_Buff_28_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_28_Visual_Effect_A = new(1034, "Power_Buff_28_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_28_Visual_Effect_B = new(1035, "Power_Buff_28_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_28_Visual_Effect_C = new(1036, "Power_Buff_28_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_28_Visual_Effect_D = new(1037, "Power_Buff_28_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_28_Visual_Effect_E = new(1038, "Power_Buff_28_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_29_Visual_Effect_None = new(1039, "Power_Buff_29_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_29_Visual_Effect_A = new(1040, "Power_Buff_29_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_29_Visual_Effect_B = new(1041, "Power_Buff_29_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_29_Visual_Effect_C = new(1042, "Power_Buff_29_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_29_Visual_Effect_D = new(1043, "Power_Buff_29_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_29_Visual_Effect_E = new(1044, "Power_Buff_29_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_30_Visual_Effect_None = new(1045, "Power_Buff_30_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_30_Visual_Effect_A = new(1046, "Power_Buff_30_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_30_Visual_Effect_B = new(1047, "Power_Buff_30_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_30_Visual_Effect_C = new(1048, "Power_Buff_30_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_30_Visual_Effect_D = new(1049, "Power_Buff_30_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_30_Visual_Effect_E = new(1050, "Power_Buff_30_Visual_Effect_E"); + public static readonly GameAttributeB Power_Buff_31_Visual_Effect_None = new(1051, "Power_Buff_31_Visual_Effect_None"); + public static readonly GameAttributeB Power_Buff_31_Visual_Effect_A = new(1052, "Power_Buff_31_Visual_Effect_A"); + public static readonly GameAttributeB Power_Buff_31_Visual_Effect_B = new(1053, "Power_Buff_31_Visual_Effect_B"); + public static readonly GameAttributeB Power_Buff_31_Visual_Effect_C = new(1054, "Power_Buff_31_Visual_Effect_C"); + public static readonly GameAttributeB Power_Buff_31_Visual_Effect_D = new(1055, "Power_Buff_31_Visual_Effect_D"); + public static readonly GameAttributeB Power_Buff_31_Visual_Effect_E = new(1056, "Power_Buff_31_Visual_Effect_E"); + public static readonly GameAttributeF Walk_Passability_Power_SNO = new(1057, "Walk_Passability_Power_SNO", defaultValue: -1); + public static readonly GameAttributeF Passability_Power_SNO = new(1058, "Passability_Power_SNO", defaultValue: -1); + public static readonly GameAttributeF Flippy_ID = new(1059, "Flippy_ID", defaultValue: -1); + public static readonly GameAttributeI Summoning_Machine_Num_Casters = new(1060, "Summoning_Machine_Num_Casters", max: 255, bitCount: 8); + public static readonly GameAttributeI Summoning_Machine_Spawn_Count = new(1061, "Summoning_Machine_Spawn_Count", max: 4095, bitCount: 12); + public static readonly GameAttributeF Summoning_Machine_Next_Spawn_Ticks = new(1062, "Summoning_Machine_Next_Spawn_Ticks"); + public static readonly GameAttributeI Summoning_Machine_Spawn_Team = new(1063, "Summoning_Machine_Spawn_Team", defaultValue: -1, min: -1, max: 23, bitCount: 5); + public static readonly GameAttributeF Screen_Attack_Radius_Constant = new(1064, "Screen_Attack_Radius_Constant", encodingType: GameAttributeEncoding.Float16, defaultValue: 1114636288, bitCount: 16); + public static readonly GameAttributeF Damage_Done_Reduction_Percent = new(1065, "Max(Damage_Done_Reduction_Percent,1)", encodingType: GameAttributeEncoding.Float16, bitCount: 16); // FIXME: name looks like recursive script + public static readonly GameAttributeI Set_Item_Count = new(1066, "Set_Item_Count"); + public static readonly GameAttributeI Set_Bonus_Count = new(1067, "Set_Bonus_Count"); + public static readonly GameAttributeF Spawner_Countdown_Percent = new(1068, "Spawner_Countdown_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Attack_Slow = new(1069, "Attack_Slow"); + public static readonly GameAttributeB Power_Disabled = new(1070, "Power_Disabled"); + public static readonly GameAttributeI Weapon_Effect_Override = new(1071, "Weapon_Effect_Override", max: 14, bitCount: 4); + public static readonly GameAttributeF Debuff_Duration_Reduction_Percent = new(1072, "Debuff_Duration_Reduction_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Uses_PvP_Power_Tags = new(1073, "Uses_PvP_Power_Tags"); + public static readonly GameAttributeI Trait = new(1074, "Trait", min: -1, max: 30, bitCount: 5); + public static readonly GameAttributeF Last_ACD_Attacked_By = new(1075, "Last_ACD_Attacked_By", defaultValue: -1); + public static readonly GameAttributeF Gold_PickUp_Radius = new(1076, "Gold_PickUp_Radius", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF ClientOnlyEffect = new(1077, "ClientOnlyEffect", defaultValue: -1); + public static readonly GameAttributeB Power_Saved_Attribute = new(1078, "Power_Saved_Attribute"); + public static readonly GameAttributeF Resource_Gain_Bonus_Percent = new(1079, "Resource_Gain_Bonus_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeI Looping_Animation_Start_Time = new(1080, "Looping_Animation_Start_Time", u4: 1, u5: 1, flags: (ReplicationFlags)222); // FIXME: incorrect flags + public static readonly GameAttributeI Looping_Animation_End_Time = new(1081, "Looping_Animation_End_Time", u4: 1, u5: 1, flags: (ReplicationFlags)222); // FIXME: incorrect flags + public static readonly GameAttributeB Looping_Animation_Suppress_Item_Tooltips = new(1082, "Looping_Animation_Suppress_Item_Tooltips"); + public static readonly GameAttributeF Heal_Effect_Last_Played_Tick = new(1083, "Heal_Effect_Last_Played_Tick", defaultValue: -1); + public static readonly GameAttributeF Resource_Effect_Last_Played_tick = new(1084, "Resource_Effect_Last_Played_tick", defaultValue: -1); + public static readonly GameAttributeF Thorns_Effect_Last_Played_tick = new(1085, "Thorns_Effect_Last_Played_tick", defaultValue: -1); + public static readonly GameAttributeF PVP_Kills = new(1086, "PVP_Kills"); + public static readonly GameAttributeF PVP_Deaths = new(1087, "PVP_Deaths"); + public static readonly GameAttributeF PVP_Assists = new(1088, "PVP_Assists"); + public static readonly GameAttributeF PVP_Progression_Points_Gained = new(1089, "PVP_Progression_Points_Gained"); + public static readonly GameAttributeF PVP_Current_Kill_Streak = new(1090, "PVP_Current_Kill_Streak"); + public static readonly GameAttributeF PVP_Current_Death_Streak = new(1091, "PVP_Current_Death_Streak"); + public static readonly GameAttributeF PVP_Longest_Kill_Streak = new(1092, "PVP_Longest_Kill_Streak"); + public static readonly GameAttributeF PVP_Longest_Death_Streak = new(1093, "PVP_Longest_Death_Streak"); + public static readonly GameAttributeF Turn_Rate_Scalar = new(1094, "Turn_Rate_Scalar", encodingType: GameAttributeEncoding.Float16, defaultValue: 1065353216, bitCount: 16); + public static readonly GameAttributeF Turn_Accel_Scalar = new(1095, "Turn_Accel_Scalar", encodingType: GameAttributeEncoding.Float16, defaultValue: 1065353216, bitCount: 16); + public static readonly GameAttributeF Turn_Deccel_Scalar = new(1096, "Turn_Deccel_Scalar", encodingType: GameAttributeEncoding.Float16, defaultValue: 1065353216, bitCount: 16); + public static readonly GameAttributeB No_Health_Drop = new(1097, "No_Health_Drop"); + public static readonly GameAttributeB Leader = new(1098, "Leader"); + public static readonly GameAttributeB IsContentRestrictedActor = new(1099, "IsContentRestrictedActor"); + public static readonly GameAttributeB InBossEncounter = new(1100, "InBossEncounter"); + public static readonly GameAttributeB God = new(1101, "God"); + public static readonly GameAttributeB AllowSkillChanges = new(1102, "AllowSkillChanges"); + public static readonly GameAttributeB MinimapActive = new(1103, "MinimapActive", u4: 1, u5: 1, flags: (ReplicationFlags)31); // FIXME: incorrect flags + public static readonly GameAttributeF MinimapIconOverride = new(1104, "MinimapIconOverride", defaultValue: -1); + public static readonly GameAttributeB MinimapDisableArrow = new(1105, "MinimapDisableArrow"); + public static readonly GameAttributeF Last_Blocked_ACD = new(1106, "Last_Blocked_ACD", defaultValue: -1); + public static readonly GameAttributeF Last_Blocked_Time = new(1107, "Last_Blocked_Time"); + public static readonly GameAttributeB Deactivate_Lure = new(1108, "DeactivateLure"); + public static readonly GameAttributeB Weapons_Hidden = new(1109, "Weapons_Hidden"); + public static readonly GameAttributeB Main_Hand_Weapon_Hidden = new(1110, "Main_Hand_Weapon_Hidden"); + public static readonly GameAttributeB Off_Hand_Weapon_Hidden = new(1111, "Off_Hand_Weapon_Hidden"); + public static readonly GameAttributeB Actor_Updates_Attributes_From_Owner = new(1112, "Actor_Updates_Attributes_From_Owner"); + public static readonly GameAttributeF Taunt_Target_ACD = new(1113, "Taunt_Target_ACD", defaultValue: -1); + public static readonly GameAttributeF Charm_Source_ACD = new(1114, "Charm_Source_ACD", defaultValue: -1); + public static readonly GameAttributeF UI_Only_Percent_Damage_Increase = new(1115, "UI_Only_Percent_Damage_Increase", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Projectile_Effect_SNO = new(1116, "Projectile_Effect_SNO", defaultValue: -1); + public static readonly GameAttributeF On_Hit_Fear_Proc_Chance = new(1117, "On_Hit_Fear_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF On_Hit_Stun_Proc_Chance = new(1118, "On_Hit_Stun_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF On_Hit_Blind_Proc_Chance = new(1119, "On_Hit_Blind_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF On_Hit_Freeze_Proc_Chance = new(1120, "On_Hit_Freeze_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF On_Hit_Chill_Proc_Chance = new(1121, "On_Hit_Chill_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF On_Hit_Slow_Proc_Chance = new(1122, "On_Hit_Slow_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF On_Hit_Immobilize_Proc_Chance = new(1123, "On_Hit_Immobilize_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF On_Hit_Knockback_Proc_Chance = new(1124, "On_Hit_Knockback_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF On_Hit_Bleed_Proc_Chance = new(1125, "On_Hit_Bleed_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF On_Hit_Bleed_Proc_Damage_Base = new(1126, "On_Hit_Bleed_Proc_Damage_Base", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF On_Hit_Bleed_Proc_Damage_Delta = new(1127, "On_Hit_Bleed_Proc_Damage_Delta", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Damage_Percent_Reduction_From_Ranged = new(1128, "Damage_Percent_Reduction_From_Ranged"); + public static readonly GameAttributeF Damage_Percent_Reduction_From_Melee = new(1129, "Damage_Percent_Reduction_From_Melee"); + public static readonly GameAttributeF Damage_Percent_Reduction_Turns_Into_Heal = new(1130, "Damage_Percent_Reduction_Turns_Into_Heal", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Damage_Percent_Reduction_From_Elites = new(1131, "Damage_Percent_Reduction_From_Elites"); + public static readonly GameAttributeF Damage_Percent_Reduction_From_Type = new(1132, "Damage_Percent_Reduction_From_Type", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Damage_Percent_Bonus_Vs_Monster_Type = new(1133, "Damage_Percent_Bonus_Vs_Monster_Type", encodingType: GameAttributeEncoding.Float16, flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated, bitCount: 16); + public static readonly GameAttributeF Damage_Percent_Bonus_Vs_Elites = new(1134, "Damage_Percent_Bonus_Vs_Elites"); + public static readonly GameAttributeF Item_Manipulation_Timeout = new(1135, "Item_Manipulation_Timeout"); + public static readonly GameAttributeF Picked_Up_Time = new(1136, "Picked_Up_Time"); + public static readonly GameAttributeF UnequippedTime = new(1137, "UnequippedTime", defaultValue: 1); + public static readonly GameAttributeF Last_ACD_Killed_Time = new(1138, "Last_ACD_Killed_Time"); + public static readonly GameAttributeB CannotDieDuring = new(1139, "CannotDieDuring"); + public static readonly GameAttributeF Weapon_On_Hit_Fear_Proc_Chance = new(1140, "Weapon_On_Hit_Fear_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Stun_Proc_Chance = new(1141, "Weapon_On_Hit_Stun_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Blind_Proc_Chance = new(1142, "Weapon_On_Hit_Blind_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Freeze_Proc_Chance = new(1143, "Weapon_On_Hit_Freeze_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Chill_Proc_Chance = new(1144, "Weapon_On_Hit_Chill_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Slow_Proc_Chance = new(1145, "Weapon_On_Hit_Slow_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Immobilize_Proc_Chance = new(1146, "Weapon_On_Hit_Immobilize_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Knockback_Proc_Chance = new(1147, "Weapon_On_Hit_Knockback_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Chance = new(1148, "Weapon_On_Hit_Bleed_Proc_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Base = new(1149, "Weapon_On_Hit_Bleed_Proc_Damage_Base", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Delta = new(1150, "Weapon_On_Hit_Bleed_Proc_Damage_Delta", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Chance = new(1151, "Weapon_On_Hit_Percent_Bleed_Proc_Chance", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Damage = new(1152, "Weapon_On_Hit_Percent_Bleed_Proc_Damage", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Duration = new(1153, "Weapon_On_Hit_Percent_Bleed_Proc_Duration", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Fear_Proc_Chance_MainHand = new(1154, "Weapon_On_Hit_Fear_Proc_Chance_MainHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Fear_Proc_Chance_OffHand = new(1155, "Weapon_On_Hit_Fear_Proc_Chance_OffHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Fear_Proc_Chance_CurrentHand = new(1156, "Weapon_On_Hit_Fear_Proc_Chance_CurrentHand", encodingType: GameAttributeEncoding.Float16, script: "(DualWield_Hand ? Weapon_On_Hit_Fear_Proc_Chance_OffHand : Weapon_On_Hit_Fear_Proc_Chance_MainHand)", bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Stun_Proc_Chance_MainHand = new(1157, "Weapon_On_Hit_Stun_Proc_Chance_MainHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Stun_Proc_Chance_OffHand = new(1158, "Weapon_On_Hit_Stun_Proc_Chance_OffHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Stun_Proc_Chance_CurrentHand = new(1159, "Weapon_On_Hit_Stun_Proc_Chance_CurrentHand", encodingType: GameAttributeEncoding.Float16, script: "(DualWield_Hand ? Weapon_On_Hit_Stun_Proc_Chance_OffHand : Weapon_On_Hit_Stun_Proc_Chance_MainHand)", bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Blind_Proc_Chance_MainHand = new(1160, "Weapon_On_Hit_Blind_Proc_Chance_MainHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Blind_Proc_Chance_OffHand = new(1161, "Weapon_On_Hit_Blind_Proc_Chance_OffHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Blind_Proc_Chance_CurrentHand = new(1162, "Weapon_On_Hit_Blind_Proc_Chance_CurrentHand", encodingType: GameAttributeEncoding.Float16, script: "(DualWield_Hand ? Weapon_On_Hit_Blind_Proc_Chance_OffHand : Weapon_On_Hit_Blind_Proc_Chance_MainHand)", bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Freeze_Proc_Chance_MainHand = new(1163, "Weapon_On_Hit_Freeze_Proc_Chance_MainHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Freeze_Proc_Chance_OffHand = new(1164, "Weapon_On_Hit_Freeze_Proc_Chance_OffHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Freeze_Proc_Chance_CurrentHand = new(1165, "Weapon_On_Hit_Freeze_Proc_Chance_CurrentHand", encodingType: GameAttributeEncoding.Float16, script: "(DualWield_Hand ? Weapon_On_Hit_Freeze_Proc_Chance_OffHand : Weapon_On_Hit_Freeze_Proc_Chance_MainHand)", bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Chill_Proc_Chance_MainHand = new(1166, "Weapon_On_Hit_Chill_Proc_Chance_MainHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Chill_Proc_Chance_OffHand = new(1167, "Weapon_On_Hit_Chill_Proc_Chance_OffHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Chill_Proc_Chance_CurrentHand = new(1168, "Weapon_On_Hit_Chill_Proc_Chance_CurrentHand", encodingType: GameAttributeEncoding.Float16, script: "(DualWield_Hand ? Weapon_On_Hit_Chill_Proc_Chance_OffHand : Weapon_On_Hit_Chill_Proc_Chance_MainHand)", bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Slow_Proc_Chance_MainHand = new(1169, "Weapon_On_Hit_Slow_Proc_Chance_MainHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Slow_Proc_Chance_OffHand = new(1170, "Weapon_On_Hit_Slow_Proc_Chance_OffHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Slow_Proc_Chance_CurrentHand = new(1171, "Weapon_On_Hit_Slow_Proc_Chance_CurrentHand", encodingType: GameAttributeEncoding.Float16, script: "(DualWield_Hand ? Weapon_On_Hit_Slow_Proc_Chance_OffHand : Weapon_On_Hit_Slow_Proc_Chance_MainHand)", bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Immobilize_Proc_Chance_MainHand = new(1172, "Weapon_On_Hit_Immobilize_Proc_Chance_MainHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Immobilize_Proc_Chance_OffHand = new(1173, "Weapon_On_Hit_Immobilize_Proc_Chance_OffHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Immobilize_Proc_Chance_CurrentHand = new(1174, "Weapon_On_Hit_Immobilize_Proc_Chance_CurrentHand", encodingType: GameAttributeEncoding.Float16, script: "(DualWield_Hand ? Weapon_On_Hit_Immobilize_Proc_Chance_OffHand : Weapon_On_Hit_Immobilize_Proc_Chance_MainHand)", bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Knockback_Proc_Chance_MainHand = new(1175, "Weapon_On_Hit_Knockback_Proc_Chance_MainHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Knockback_Proc_Chance_OffHand = new(1176, "Weapon_On_Hit_Knockback_Proc_Chance_OffHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Knockback_Proc_Chance_CurrentHand = new(1177, "Weapon_On_Hit_Knockback_Proc_Chance_CurrentHand", encodingType: GameAttributeEncoding.Float16, script: "(DualWield_Hand ? Weapon_On_Hit_Knockback_Proc_Chance_OffHand : Weapon_On_Hit_Knockback_Proc_Chance_MainHand)", bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Chance_MainHand = new(1178, "Weapon_On_Hit_Bleed_Proc_Chance_MainHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Chance_OffHand = new(1179, "Weapon_On_Hit_Bleed_Proc_Chance_OffHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Chance_CurrentHand = new(1180, "Weapon_On_Hit_Bleed_Proc_Chance_CurrentHand", encodingType: GameAttributeEncoding.Float16, script: "(DualWield_Hand ? Weapon_On_Hit_Bleed_Proc_Chance_OffHand : Weapon_On_Hit_Bleed_Proc_Chance_MainHand)", bitCount: 16); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Base_MainHand = new(1181, "Weapon_On_Hit_Bleed_Proc_Damage_Base_MainHand", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Base_OffHand = new(1182, "Weapon_On_Hit_Bleed_Proc_Damage_Base_OffHand", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Base_CurrentHand = new(1183, "Weapon_On_Hit_Bleed_Proc_Damage_Base_CurrentHand", encodingType: GameAttributeEncoding.Float16Or32, script: "(DualWield_Hand ? Weapon_On_Hit_Bleed_Proc_Damage_Base_OffHand : Weapon_On_Hit_Bleed_Proc_Damage_Base_MainHand)", bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Delta_MainHand = new(1184, "Weapon_On_Hit_Bleed_Proc_Damage_Delta_MainHand", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Delta_OffHand = new(1185, "Weapon_On_Hit_Bleed_Proc_Damage_Delta_OffHand", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Bleed_Proc_Damage_Delta_CurrentHand = new(1186, "Weapon_On_Hit_Bleed_Proc_Damage_Delta_CurrentHand", encodingType: GameAttributeEncoding.Float16Or32, script: "(DualWield_Hand ? Weapon_On_Hit_Bleed_Proc_Damage_Delta_OffHand : Weapon_On_Hit_Bleed_Proc_Damage_Delta_MainHand)", bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Chance_MainHand = new(1187, "Weapon_On_Hit_Percent_Bleed_Proc_Chance_MainHand", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Chance_OffHand = new(1188, "Weapon_On_Hit_Percent_Bleed_Proc_Chance_OffHand", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Chance_CurrentHand = new(1189, "Weapon_On_Hit_Percent_Bleed_Proc_Chance_CurrentHand", encodingType: GameAttributeEncoding.Float16Or32, script: "(DualWield_Hand ? Weapon_On_Hit_Percent_Bleed_Proc_Chance_OffHand : Weapon_On_Hit_Percent_Bleed_Proc_Chance_MainHand)", bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Damage_MainHand = new(1190, "Weapon_On_Hit_Percent_Bleed_Proc_Damage_MainHand", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Damage_Base_OffHand = new(1191, "Weapon_On_Hit_Percent_Bleed_Proc_Damage_Base_OffHand", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Damage_Base_CurrentHand = new(1192, "Weapon_On_Hit_Percent_Bleed_Proc_Damage_Base_CurrentHand", encodingType: GameAttributeEncoding.Float16Or32, script: "(DualWield_Hand ? Weapon_On_Hit_Percent_Bleed_Proc_Damage_Base_OffHand : Weapon_On_Hit_Percent_Bleed_Proc_Damage_MainHand)", bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Duration_MainHand = new(1193, "Weapon_On_Hit_Percent_Bleed_Proc_Duration_MainHand", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Duration_OffHand = new(1194, "Weapon_On_Hit_Percent_Bleed_Proc_Duration_OffHand", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Weapon_On_Hit_Percent_Bleed_Proc_Duration_CurrentHand = new(1195, "Weapon_On_Hit_Percent_Bleed_Proc_Duration_CurrentHand", encodingType: GameAttributeEncoding.Float16Or32, script: "(DualWield_Hand ? Weapon_On_Hit_Percent_Bleed_Proc_Duration_OffHand : Weapon_On_Hit_Percent_Bleed_Proc_Duration_MainHand)", bitCount: 0); + public static readonly GameAttributeF Power_Damage_Percent_Bonus = new(1196, "Power_Damage_Percent_Bonus"); + public static readonly GameAttributeF Power_Instance_Damage_Percent_Bonus = new(1197, "Power_Instance_Damage_Percent_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Power_Resource_Reduction = new(1198, "Power_Resource_Reduction", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Power_Resource_Reduction_Percent = new(1199, "Power_Resource_Reduction_Percent", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Power_Cooldown_Reduction = new(1200, "Power_Cooldown_Reduction", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Power_Cooldown_Reduction_All = new(1201, "Power_Cooldown_Reduction_All", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Power_Duration_Increase = new(1202, "Power_Duration_Increase", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Power_Crit_Percent_Bonus = new(1203, "Power_Crit_Percent_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_Crit_Chance = new(1204, "Weapon_Crit_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_Crit_Chance_MainHand = new(1205, "Weapon_Crit_Chance_MainHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_Crit_Chance_OffHand = new(1206, "Weapon_Crit_Chance_OffHand", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Weapon_Crit_Chance_CurrentHand = new(1207, "Weapon_Crit_Chance_CurrentHand", encodingType: GameAttributeEncoding.Float16, script: "(DualWield_Hand ? Weapon_Crit_Chance_OffHand : Weapon_Crit_Chance_MainHand)", bitCount: 16); + public static readonly GameAttributeF Strength_Item = new(1208, "Strength_Item"); + public static readonly GameAttributeF Dexterity_Item = new(1209, "Dexterity_Item"); + public static readonly GameAttributeF Intelligence_Item = new(1210, "Intelligence_Item"); + public static readonly GameAttributeF Vitality_Item = new(1211, "Vitality_Item"); + public static readonly GameAttributeI Item_Level_Requirement_Reduction = new(1212, "Item_Level_Requirement_Reduction"); + public static readonly GameAttributeI Item_Level_Requirement_Override = new(1213, "Item_Level_Requirement_Override"); + public static readonly GameAttributeF Item_Durability_Percent_Bonus = new(1214, "Item_Durability_Percent_Bonus", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeB Item_Indestructible = new(1215, "Item_Indestructible"); + public static readonly GameAttributeB Player_All_Items_Indestructible = new(1216, "Player_All_Items_Indestructible"); + public static readonly GameAttributeF Core_Attributes_From_Item_Bonus_Multiplier = new(1217, "Core_Attributes_From_Item_Bonus_Multiplier", defaultValue: 1065353216); + public static readonly GameAttributeB Waiting_To_Accept_Resurrection = new(1218, "Waiting_To_Accept_Resurrection"); + public static readonly GameAttributeB Ghosted = new(1219, "Ghosted"); + public static readonly GameAttributeF Special_Inventory_Has_Sold = new(1220, "Special_Inventory_Has_Sold"); + public static readonly GameAttributeI Special_Inventory_Index = new(1221, "Special_Inventory_Index", defaultValue: -1, min: -1, max: 31, bitCount: 6); + public static readonly GameAttributeF Inventory_Reroll_Time = new(1222, "Inventory_Reroll_Time"); + public static readonly GameAttributeF Fiil1 = new(1223, "Fiil1", defaultValue: -1); + public static readonly GameAttributeF Fiil2 = new(1224, "Fiil2", defaultValue: -1); + public static readonly GameAttributeF Power_Channel_Lockout_Time = new(1225, "Power_Channel_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_0_Lockout_Time = new(1226, "Power_Buff_0_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_1_Lockout_Time = new(1227, "Power_Buff_1_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_2_Lockout_Time = new(1228, "Power_Buff_2_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_3_Lockout_Time = new(1229, "Power_Buff_3_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_4_Lockout_Time = new(1230, "Power_Buff_4_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_5_Lockout_Time = new(1231, "Power_Buff_5_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_6_Lockout_Time = new(1232, "Power_Buff_6_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_7_Lockout_Time = new(1233, "Power_Buff_7_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_8_Lockout_Time = new(1234, "Power_Buff_8_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_9_Lockout_Time = new(1235, "Power_Buff_9_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_10_Lockout_Time = new(1236, "Power_Buff_10_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_11_Lockout_Time = new(1237, "Power_Buff_11_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_12_Lockout_Time = new(1238, "Power_Buff_12_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_13_Lockout_Time = new(1239, "Power_Buff_13_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_14_Lockout_Time = new(1240, "Power_Buff_14_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_15_Lockout_Time = new(1241, "Power_Buff_15_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_16_Lockout_Time = new(1242, "Power_Buff_16_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_17_Lockout_Time = new(1243, "Power_Buff_17_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_18_Lockout_Time = new(1244, "Power_Buff_18_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_19_Lockout_Time = new(1245, "Power_Buff_19_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_20_Lockout_Time = new(1246, "Power_Buff_20_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_21_Lockout_Time = new(1247, "Power_Buff_21_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_22_Lockout_Time = new(1248, "Power_Buff_22_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_23_Lockout_Time = new(1249, "Power_Buff_23_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_24_Lockout_Time = new(1250, "Power_Buff_24_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_25_Lockout_Time = new(1251, "Power_Buff_25_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_26_Lockout_Time = new(1252, "Power_Buff_26_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_27_Lockout_Time = new(1253, "Power_Buff_27_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_28_Lockout_Time = new(1254, "Power_Buff_28_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_29_Lockout_Time = new(1255, "Power_Buff_29_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_30_Lockout_Time = new(1256, "Power_Buff_30_Lockout_Time"); + public static readonly GameAttributeF Power_Buff_31_Lockout_Time = new(1257, "Power_Buff_31_Lockout_Time"); + public static readonly GameAttributeI Known_By_Owner = new(1258, "Known_By_Owner", defaultValue: -1); + public static readonly GameAttributeB Never_Deactivates = new(1259, "Never_Deactivates"); + public static readonly GameAttributeB Account_Under_Review = new(1260, "Account_Under_Review"); + public static readonly GameAttributeF Projectile_Detonate_Time = new(1261, "Projectile_Detonate_Time"); + public static readonly GameAttributeB Projectile_Uncapped_Lifetime = new(1262, "Projectile_Uncapped_Lifetime"); + public static readonly GameAttributeF PageOfFate_Item = new(1263, "PageOfFate_Item", defaultValue: -1); + public static readonly GameAttributeF Accolade_0 = new(1264, "Accolade_0", defaultValue: -1); + public static readonly GameAttributeF Accolade_1 = new(1265, "Accolade_1", defaultValue: -1); + public static readonly GameAttributeF Accolade_2 = new(1266, "Accolade_2", defaultValue: -1); + public static readonly GameAttributeF Accolade_3 = new(1267, "Accolade_3", defaultValue: -1); + public static readonly GameAttributeF Accolade_4 = new(1268, "Accolade_4", defaultValue: -1); + public static readonly GameAttributeF Accolade_0_Value = new(1269, "Accolade_0_Value"); + public static readonly GameAttributeF Accolade_1_Value = new(1270, "Accolade_1_Value"); + public static readonly GameAttributeF Accolade_2_Value = new(1271, "Accolade_2_Value"); + public static readonly GameAttributeF Accolade_3_Value = new(1272, "Accolade_3_Value"); + public static readonly GameAttributeF Accolade_4_Value = new(1273, "Accolade_4_Value"); + public static readonly GameAttributeI PVP_Rank = new(1274, "PVP_Rank", min: -1, max: 100, bitCount: 7); + public static readonly GameAttributeF PVP_Tokens = new(1275, "PVP_Tokens"); + public static readonly GameAttributeI PVP_Experience_Next_Lo = new(1276, "PVP_Experience_Next_Lo"); + public static readonly GameAttributeI PVP_Experience_Next_Hi = new(1277, "PVP_Experience_Next_Hi"); + public static readonly GameAttributeF PVP_Gold_Gained_This_Game = new(1278, "PVP_Gold_Gained_This_Game"); + public static readonly GameAttributeF PVP_PVP_Experience_Gained_This_Game_Lo = new(1279, "PVP_PVP_Experience_Gained_This_Game_Lo"); + public static readonly GameAttributeF PVP_PVP_Experience_Gained_This_Game_Hi = new(1280, "PVP_PVP_Experience_Gained_This_Game_Hi"); + public static readonly GameAttributeF PVP_Normal_Experience_Gained_This_Game_Lo = new(1281, "PVP_Normal_Experience_Gained_This_Game_Lo"); + public static readonly GameAttributeF PVP_Normal_Experience_Gained_This_Game_Hi = new(1282, "PVP_Normal_Experience_Gained_This_Game_Hi"); + public static readonly GameAttributeF PVP_Tokens_Gained_This_Game = new(1283, "PVP_Tokens_Gained_This_Game"); + public static readonly GameAttributeI PVP_Level_Equalizer_Level = new(1284, "PVP_Level_Equalizer_Level", min: -1, max: 70, bitCount: 7); + public static readonly GameAttributeB Is_Temporary_Lure = new(1285, "Is_Temporary_Lure", defaultValue: true); + public static readonly GameAttributeB Ignore_Lure = new(1286, "Ignore_Lure"); + public static readonly GameAttributeI Effect_Owner_ANN = new(1287, "Effect_Owner_ANN", defaultValue: -1); + public static readonly GameAttributeB Elite_Engaged = new(1288, "Elite_Engaged"); + public static readonly GameAttributeF Engaged_Rare_Time = new(1289, "Engaged_Rare_Time"); + public static readonly GameAttributeF Engaged_Goblin_Time = new(1290, "Engaged_Goblin_Time"); + public static readonly GameAttributeF On_Death_Accolade_0 = new(1291, "On_Death_Accolade_0", defaultValue: -1); + public static readonly GameAttributeF On_Death_Accolade_0_Value = new(1292, "On_Death_Accolade_0_Value"); + public static readonly GameAttributeF Item_Power_Passive = new(1293, "Item_Power_Passive"); + public static readonly GameAttributeF PVP_TeamDeathmatch_Games_Played = new(1294, "PVP_TeamDeathmatch_Games_Played"); + public static readonly GameAttributeF Last_Health_Drop_Interval = new(1295, "Last_Health_Drop_Interval", defaultValue: -1); + public static readonly GameAttributeF CrowdControl_Resistance = new(1296, "CrowdControl_Resistance", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF CrowdControl_Projected_End_Time = new(1297, "CrowdControl_Projected_End_Time", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Last_Continuous_Knockback_Power_ID = new(1298, "Last_Continuous_Knockback_Power_ID", defaultValue: -1); + public static readonly GameAttributeB Charmed = new(1299, "Charmed"); + public static readonly GameAttributeB Taunted = new(1300, "Taunted"); + public static readonly GameAttributeB Dueling = new(1301, "Dueling"); + public static readonly GameAttributeB PVP_Player_Revealed_On_Map = new(1302, "PVP_Player_Revealed_On_Map"); + public static readonly GameAttributeF Targeted_Legendary_Chance = new(1303, "Targeted_Legendary_Chance"); + public static readonly GameAttributeF Seasonal_Legendary_Chance = new(1304, "Seasonal_Legendary_Chance", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeB Received_Seasonal_Legendary = new(1305, "Received_Seasonal_Legendary"); + public static readonly GameAttributeB Has_Dropped_Special_loot = new(1306, "Has_Dropped_Special_loot"); + public static readonly GameAttributeB Scroll_Buff = new(1307, "Scroll_Buff"); + public static readonly GameAttributeB Buff_Exclusive_Type_Active = new(1308, "Buff_Exclusive_Type_Active", flags: ReplicationFlags.PlayerReplicated2 | ReplicationFlags.ItemReplicated); + public static readonly GameAttributeB In_Combat_With_Player = new(1309, "In_Combat_With_Player"); + public static readonly GameAttributeF Actor_Forwards_Buffs = new(1310, "Actor_Forwards_Buffs", defaultValue: -1); + public static readonly GameAttributeF Item_Marked_As_Junk = new(1311, "Item_Marked_As_Junk"); + public static readonly GameAttributeB Allow_2H_And_Shield = new(1312, "Allow_2H_And_Shield"); + public static readonly GameAttributeF Class_Damage_Reduction_Percent_PVP = new(1313, "Class_Damage_Reduction_Percent_PVP", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeI Paragon_Bonus = new(1314, "Paragon_Bonus"); + public static readonly GameAttributeI Paragon_Bonus_Points_Available = new(1315, "Paragon_Bonus_Points_Available"); + public static readonly GameAttributeF Dungeon_Finder_Progress_Percent = new(1316, "Dungeon_Finder_Progress_Percent"); + public static readonly GameAttributeF Item_Trade_Player_High = new(1317, "Item_Trade_Player_High"); + public static readonly GameAttributeF Item_Trade_Player_Low = new(1318, "Item_Trade_Player_Low"); + public static readonly GameAttributeF Item_Trade_End_Time = new(1319, "Item_Trade_End_Time"); + public static readonly GameAttributeF Item_Trade_Timer_ID = new(1320, "Item_Trade_Timer_ID", defaultValue: -1); + public static readonly GameAttributeB Item_Is_BOE = new(1321, "Item_Is_BOE"); + public static readonly GameAttributeF Season = new(1322, "Season"); + public static readonly GameAttributeI DamageDoneTotalTrackedHi = new(1323, "DamageDoneTotalTrackedHi"); + public static readonly GameAttributeI DamageDoneTotalTrackedLo = new(1324, "DamageDoneTotalTrackedLo"); + public static readonly GameAttributeI DamageDoneTrackingStartTick = new(1325, "DamageDoneTrackingStartTick"); + public static readonly GameAttributeF PowerPersistsAcrossGames = new(1326, "PowerPersistsAcrossGames"); + public static readonly GameAttributeF Experience_Bonus_Percent_IGR_Buff = new(1327, "Experience_Bonus_Percent_IGR_Buff", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Experience_Bonus_Percent_Anniversary_Buff = new(1328, "Experience_Bonus_Percent_Anniversary_Buff", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Experience_Bonus_Percent_Community_Buff = new(1329, "Experience_Bonus_Percent_Community_Buff", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Experience_Bonus_Percent_Potion_Buff = new(1330, "Experience_Bonus_Percent_Potion_Buff", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Experience_Bonus_Percent_Super_Scalar = new(1331, "Experience_Bonus_Percent_Super_Scalar", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF Experience_Bonus_Percent_Super_Scalar_Total = new(1332, "Experience_Bonus_Percent_Super_Scalar_Total", encodingType: GameAttributeEncoding.Float16Or32, script: "(Experience_Bonus_Percent_Super_Scalar + 1) * (Experience_Bonus_Percent_Community_Buff + 1) * (Experience_Bonus_Percent_IGR_Buff + 1) * (Experience_Bonus_Percent_Anniversary_Buff + 1) * (Experience_Bonus_Percent_Potion_Buff + 1)", bitCount: 0); + public static readonly GameAttributeB AlwaysShowFloatingNumbers = new(1333, "AlwaysShowFloatingNumbers"); + public static readonly GameAttributeF Targeted_Rare_Chance = new(1334, "Targeted_Rare_Chance"); + public static readonly GameAttributeB Supress_Thorns_Effect = new(1335, "Supress_Thorns_Effect"); + public static readonly GameAttributeF Dynamic_Entrance_GUID = new(1336, "Dynamic_Entrance_GUID"); + public static readonly GameAttributeF Bonus_Chance_To_Be_Crit_Hit = new(1337, "Bonus_Chance_To_Be_Crit_Hit"); + public static readonly GameAttributeF Bonus_Chance_To_Be_Crit_Hit_By_Actor = new(1338, "Bonus_Chance_To_Be_Crit_Hit_By_Actor"); + public static readonly GameAttributeF Bonus_Chance_To_Receive_Crushing_Blown = new(1339, "Bonus_Chance_To_Receive_Crushing_Blown"); + public static readonly GameAttributeB Force_Gripped = new(1340, "Force_Gripped"); + public static readonly GameAttributeF PowerBonusAttackRadius = new(1341, "PowerBonusAttackRadius"); + public static readonly GameAttributeF Item_Store_Player_High = new(1342, "Item_Store_Player_High"); + public static readonly GameAttributeF Item_Store_Player_Low = new(1343, "Item_Store_Player_Low"); + public static readonly GameAttributeF Power_Primary_Resource_Cost_Override = new(1344, "Power_Primary_Resource_Cost_Override", defaultValue: 2139095039); + public static readonly GameAttributeF Power_Secondary_Resource_Cost_Override = new(1345, "Power_Secondary_Resource_Cost_Override", defaultValue: 2139095039); + public static readonly GameAttributeF Power_Channel_Cost_Override = new(1346, "Power_Channel_Cost_Override", defaultValue: 2139095039); + public static readonly GameAttributeI Rune_A_Override = new(1347, "Rune_A_Override", max: 255, bitCount: 8); + public static readonly GameAttributeI Rune_B_Override = new(1348, "Rune_B_Override", max: 255, bitCount: 8); + public static readonly GameAttributeI Rune_C_Override = new(1349, "Rune_C_Override", max: 255, bitCount: 8); + public static readonly GameAttributeI Rune_D_Override = new(1350, "Rune_D_Override", max: 255, bitCount: 8); + public static readonly GameAttributeI Rune_E_Override = new(1351, "Rune_E_Override", max: 255, bitCount: 8); + public static readonly GameAttributeF Elemental_Effect_Amplitude_Bonus = new(1352, "Elemental_Effect_Amplitude_Bonus"); + public static readonly GameAttributeF Elemental_Effect_Duration_Bonus = new(1353, "Elemental_Effect_Duration_Bonus"); + public static readonly GameAttributeF Elemental_Effect_Proc_Chance_Bonus = new(1354, "Elemental_Effect_Proc_Chance_Bonus"); + public static readonly GameAttributeF Splash_Damage_Effect_Percent = new(1355, "Splash_Damage_Effect_Percent"); + public static readonly GameAttributeF Crushing_Blow_Proc_Chance = new(1356, "Crushing_Blow_Proc_Chance"); + public static readonly GameAttributeB Item_Equipped_But_Disabled = new(1357, "Item_Equipped_But_Disabled"); + public static readonly GameAttributeB Item_Equipped_But_Disabled_Duplicate_Legendary = new(1358, "Item_Equipped_But_Disabled_Duplicate_Legendary"); + public static readonly GameAttributeB Attribute_Projectile_Pass_Through = new(1359, "Attribute_Projectile_Pass_Through"); + public static readonly GameAttributeI Attribute_Set_Item_Discount = new(1360, "Attribute_Set_Item_Discount", max: 255, bitCount: 8); + public static readonly GameAttributeF Negative_Health_Globe_Spawn_Chance = new(1361, "Negative_Health_Globe_Spawn_Chance"); + public static readonly GameAttributeF Override_Attached_Anim = new(1362, "Override_Attached_Anim", defaultValue: -1); + public static readonly GameAttributeB Has_Infinite_Shrine_Buffs = new(1363, "Has_Infinite_Shrine_Buffs"); + public static readonly GameAttributeF Item_Legendary_Item_Base_Item = new(1364, "Item_Legendary_Item_Base_Item", defaultValue: -1); + public static readonly GameAttributeF Targeted_Magic_Chance = new(1365, "Targeted_Magic_Chance"); + public static readonly GameAttributeB Dont_Update_Camera_While_Attached = new(1366, "Dont_Update_Camera_While_Attached"); + public static readonly GameAttributeF LinkedDynamicEntranceGUID = new(1367, "LinkedDynamicEntranceGUID"); + public static readonly GameAttributeI Boost_TC_Index = new(1368, "Boost_TC_Index", max: 31, bitCount: 5); + public static readonly GameAttributeF Boost_TC_NextTime = new(1369, "Boost_TC_NextTime"); + public static readonly GameAttributeF Potion_Bonus_Armor_Percent = new(1370, "Potion_Bonus_Armor_Percent"); + public static readonly GameAttributeF Potion_Bonus_Resist_All = new(1371, "Potion_Bonus_Resist_All"); + public static readonly GameAttributeF Potion_Bonus_Hitpoints_Granted = new(1372, "Potion_Bonus_Hitpoints_Granted"); + public static readonly GameAttributeF Potion_Bonus_Buff_Duration = new(1373, "Potion_Bonus_Buff_Duration"); + public static readonly GameAttributeF Potion_Bonus_Life_On_Hit = new(1374, "Potion_Bonus_Life_On_Hit"); + public static readonly GameAttributeF Potion_Bonus_Life_On_Kill = new(1375, "Potion_Bonus_Life_On_Kill"); + public static readonly GameAttributeF Last_Special_Item_Time_High = new(1376, "Last_Special_Item_Time_High"); + public static readonly GameAttributeF Last_Special_Item_Time_Low = new(1377, "Last_Special_Item_Time_Low"); + public static readonly GameAttributeF Item_Rest_Bonus_Pool = new(1378, "Item_Rest_Bonus_Pool"); + public static readonly GameAttributeF Item_Unlucky_Bonus_Secs = new(1379, "Item_Unlucky_Bonus_Secs"); + public static readonly GameAttributeF Item_Unlucky_Bonus_Allow = new(1380, "Item_Unlucky_Bonus_Allow"); + public static readonly GameAttributeF Avenger_Buildup_Secs = new(1381, "Avenger_Buildup_Secs"); + public static readonly GameAttributeB Bounty_Objective = new(1382, "Bounty_Objective"); + public static readonly GameAttributeB Illusion = new(1383, "Illusion"); + public static readonly GameAttributeF TornadoStraighten = new(1384, "TornadoStraighten"); + public static readonly GameAttributeB Prevent_Evade_During = new(1385, "Prevent_Evade_During"); + public static readonly GameAttributeF Damage_Bonus_From_Nephalem_Glory = new(1386, "Damage_Bonus_From_Nephalem_Glory"); + public static readonly GameAttributeF Item_Player_Recipient = new(1387, "Item_Player_Recipient", defaultValue: -1, script: "-1"); + public static readonly GameAttributeI Heavens_Fury_Attacker = new(1388, "Heavens_Fury_Attacker", defaultValue: -1, min: -1, max: 7, bitCount: 4); + public static readonly GameAttributeF Item_Assigned_Hero_High = new(1389, "Item_Assigned_Hero_High"); + public static readonly GameAttributeF Item_Assigned_Hero_Low = new(1390, "Item_Assigned_Hero_Low"); + public static readonly GameAttributeF Pierce_Charge = new(1391, "Pierce_Charge"); + public static readonly GameAttributeF Upscaled_Level = new(1392, "Upscaled_Level"); + public static readonly GameAttributeB Resurrected = new(1393, "Resurrected"); + public static readonly GameAttributeF Damage_SidekickMultiplier = new(1394, "Damage_SidekickMultiplier"); + public static readonly GameAttributeF Thorns_AOE_Radius_Next_Time = new(1395, "Thorns_AOE_Radius_Next_Time"); + public static readonly GameAttributeB Movement_Destroys_Waller_Walls = new(1396, "Movement_Destroys_Waller_Walls"); + public static readonly GameAttributeB Mail_Flag_Icon = new(1397, "Mail_Flag_Icon"); + public static readonly GameAttributeF Tiered_Loot_Run_Key_Level = new(1398, "Tiered_Loot_Run_Key_Level", defaultValue: -1); + public static readonly GameAttributeF In_Tiered_Loot_Run_Level = new(1399, "In_Tiered_Loot_Run_Level", defaultValue: -1); + public static readonly GameAttributeB Is_Loot_Run_Boss = new(1400, "Is_Loot_Run_Boss"); + public static readonly GameAttributeB ForcedMove = new(1401, "ForcedMove"); + public static readonly GameAttributeI Effective_Level = new(1402, "Effective_Level", script: "Max(Upscaled_Level, Level)"); + public static readonly GameAttributeI Jewel_Rank = new(1403, "Jewel_Rank", defaultValue: 1); + public static readonly GameAttributeI Item_Console_Max_Level = new(1404, "Item_Console_Max_Level", max: 70, bitCount: 7); + public static readonly GameAttributeB Console_Promo_Item = new(1405, "Console_Promo_Item"); + public static readonly GameAttributeB Double_BloodShards = new(1406, "Double_BloodShards"); + public static readonly GameAttributeB Double_BountyBags = new(1407, "Double_BountyBags"); + public static readonly GameAttributeI Jewel_Upgrades_Used = new(1408, "Jewel_Upgrades_Used"); + public static readonly GameAttributeI Jewel_Upgrades_Max = new(1409, "Jewel_Upgrades_Max"); + public static readonly GameAttributeI Jewel_Upgrades_Bonus = new(1410, "Jewel_Upgrades_Bonus"); + public static readonly GameAttributeB Item_Ignores_Pickup_Radius_For_Pickup = new(1411, "Item_Ignores_Pickup_Radius_For_Pickup"); + public static readonly GameAttributeB Hunter = new(1412, "Hunter"); + public static readonly GameAttributeB Participating_In_Tiered_Loot_Run = new(1413, "Participating_In_Tiered_Loot_Run"); + public static readonly GameAttributeF Tiered_Loot_Run_Reward_Choice_State = new(1414, "Tiered_Loot_Run_Reward_Choice_State", defaultValue: -1); + public static readonly GameAttributeF Tiered_Loot_Run_Reward_Receives_Key = new(1415, "Tiered_Loot_Run_Reward_Receives_Key", defaultValue: -1); + public static readonly GameAttributeF CurrentCosmeticEffect = new(1416, "CurrentCosmeticEffect", defaultValue: -1); + public static readonly GameAttributeF Bloodshard_Bonus_Percent_Potion_Buff = new(1417, "Bloodshard_Bonus_Percent_Potion_Buff", encodingType: GameAttributeEncoding.Float16Or32, bitCount: 0); + public static readonly GameAttributeF XP_Potion_Buff_Expiration = new(1418, "XP_Potion_Buff_Expiration"); + public static readonly GameAttributeF Gold_Find_Potion_Buff_Expiration = new(1419, "Gold_Find_Potion_Buff_Expiration"); + public static readonly GameAttributeF Bloodshard_Potion_Buff_Expiration = new(1420, "Bloodshard_Potion_Buff_Expiration"); + public static readonly GameAttributeF Current_Cosmetic_Pet = new(1421, "Current_Cosmetic_Pet", defaultValue: -1); + public static readonly GameAttributeF Cosmetic_Pet_Power = new(1422, "Cosmetic_Pet_Power"); + public static readonly GameAttributeF Cosmetic_Pet_Expiration = new(1423, "Cosmetic_Pet_Expiration"); + public static readonly GameAttributeF Cosmetic_Portrait_Frame = new(1424, "Cosmetic_Portrait_Frame", defaultValue: -1); + public static readonly GameAttributeI HQ_Hot_Cold_State = new(1425, "HQ_Hot_Cold_State", defaultValue: -1, min: -1, max: 2, bitCount: 2); + public static readonly GameAttributeF HQ_Cursed_Realm_Reagents_Collected = new(1426, "HQ_Cursed_Realm_Reagents_Collected"); + public static readonly GameAttributeF HQ_Cursed_Realm_Reagents_Dropped = new(1427, "HQ_Cursed_Realm_Reagents_Dropped"); + public static readonly GameAttributeB Debug_Movement_Type = new(1428, "Debug_Movement_Type"); + public static readonly GameAttributeF Tiered_Loot_Run_Death_Count = new(1429, "Tiered_Loot_Run_Death_Count"); + public static readonly GameAttributeF Tiered_Loot_Run_Corpse_Resurrection_Allowed_GameTime = new(1430, "Tiered_Loot_Run_Corpse_Resurrection_Allowed_GameTime"); + public static readonly GameAttributeF Last_Posted_Achievement_Points = new(1431, "Last_Posted_Achievement_Points"); + public static readonly GameAttributeF Cosmetic_Pet_Actor = new(1432, "Cosmetic_Pet_Actor", defaultValue: -1); + public static readonly GameAttributeF Platinum_Cap_Remaining = new(1433, "Platinum_Cap_Remaining"); + public static readonly GameAttributeF Platinum_Cap_Last_Gain = new(1434, "Platinum_Cap_Last_Gain"); + public static readonly GameAttributeF Last_Boss_Kill_Time = new(1435, "Last_Boss_Kill_Time"); + public static readonly GameAttributeF Last_Bounty_Complete_Time = new(1436, "Last_Bounty_Complete_Time"); + public static readonly GameAttributeF Last_Treasure_Goblin_Kill_Time = new(1437, "Last_Treasure_Goblin_Kill_Time"); + public static readonly GameAttributeI Stash_Tabs_Purchased_With_Gold = new(1438, "Stash_Tabs_Purchased_With_Gold", max: 5, bitCount: 3); + public static readonly GameAttributeF Stash_Tabs_Rewarded_By_Achievements = new(1439, "Stash_Tabs_Rewarded_By_Achievements"); + public static readonly GameAttributeB Skill_Button_Flash = new(1440, "Skill_Button_Flash"); + public static readonly GameAttributeF Projectile_Det_Path_Reflect_Count = new(1441, "Projectile_Det_Path_Reflect_Count"); + public static readonly GameAttributeF Last_Cosmetic_Pet = new(1442, "Last_Cosmetic_Pet", defaultValue: -1); + public static readonly GameAttributeF Platinum_Last_Significant_Kill = new(1443, "Platinum_Last_Significant_Kill"); + public static readonly GameAttributeF Power_Last_Attribute_Snapshot_Update_Time = new(1444, "Power_Last_Attribute_Snapshot_Update_Time"); + public static readonly GameAttributeB Skill_Button_Active_Glow = new(1445, "Skill_Button_Active_Glow"); + public static readonly GameAttributeB Participating_In_Set_Dungeon = new(1446, "Participating_In_Set_Dungeon"); + public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus = new(1447, "Multiplicative_Damage_Percent_Bonus", defaultValue: 1065353216); + public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus_For_Skill = new(1448, "Multiplicative_Damage_Percent_Bonus_For_Skill", defaultValue: 1065353216); + public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus_For_Player = new(1449, "Multiplicative_Damage_Percent_Bonus_For_Player", defaultValue: 1065353216); + public static readonly GameAttributeB In_Set_Dungeon_World = new(1450, "In_Set_Dungeon_World"); + public static readonly GameAttributeB In_Swarm_Rift_World = new(1451, "In_Swarm_Rift_World"); + public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus_No_Pets = new(1452, "Multiplicative_Damage_Percent_Bonus_No_Pets", defaultValue: 1065353216); + public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus_ochallengeAgainst_CC_Targets = new(1453, "Multiplicative_Damage_Percent_Bonus_ochallengeAgainst_CC_Targets", defaultValue: 1065353216); + public static readonly GameAttributeF Multiplicative_Damage_Percent_Bonus_Against_Slowed_Targets = new(1454, "Multiplicative_Damage_Percent_Bonus_Against_Slowed_Targets", defaultValue: 1065353216); + public static readonly GameAttributeB Summoned_By_Autocast = new(1455, "Summoned_By_Autocast"); + public static readonly GameAttributeF Necromancer_Corpse_Spawn_Chance = new(1456, "Necromancer_Corpse_Spawn_Chance", encodingType: GameAttributeEncoding.Float16, bitCount: 16); + public static readonly GameAttributeF Necromancer_Last_Corpse_Spawn_Check_Tick = new(1457, "Necromancer_Last_Corpse_Spawn_Check_Tick"); + public static readonly GameAttributeF Necromancer_Corpse_Owner_Player_High = new(1458, "Necromancer_Corpse_Owner_Player_High"); + public static readonly GameAttributeF Necromancer_Corpse_Owner_Player_Low = new(1459, "Necromancer_Corpse_Owner_Player_Low"); + public static readonly GameAttributeF Necromancer_Corpse_Charges = new(1460, "Necromancer_Corpse_Charges"); + public static readonly GameAttributeI Necromancer_Corpse_Source_Monster_SNO = new(1461, "Necromancer_Corpse_Source_Monster_SNO", defaultValue: -1); + public static readonly GameAttributeB Necromancer_Corpse_Free_Casting = new(1462, "Necromancer_Corpse_Free_Casting"); + public static readonly GameAttributeI Currencies_Discovered = new(1463, "Currencies_Discovered"); + public static readonly GameAttributeF In_Tiered_Challenge_Rift = new(1464, "In_Tiered_Challenge_Rift"); + public static readonly GameAttributeF Necromancer_Cursed = new(1465, "Necromancer_Cursed", defaultValue: -1); + public static readonly GameAttributeF Necromancer_Curse_Count = new(1466, "Necromancer_Curse_Count"); + public static readonly GameAttributeF Necromancer_Unique_Curse_Count = new(1467, "Necromancer_Unique_Curse_Count"); + public static readonly GameAttributeF Eligible_For_Weekly_Challenge_Reward = new(1468, "Eligible_For_Weekly_Challenge_Reward"); + public static readonly GameAttributeF Force_Remote_FX = new(1469, "Force_Remote_FX"); + public static readonly GameAttributeB Weekly_Challenge_Reward_Icon = new(1470, "Weekly_Challenge_Reward_Icon"); + public static readonly GameAttributeB Item_Was_Touched_By_Armory = new(1471, "Item_Was_Touched_By_Armory"); + public static readonly GameAttributeB Item_Was_Touched_By_Armory_Last_Game = new(1472, "Item_Was_Touched_By_Armory_Last_Game"); + public static readonly GameAttributeB Has_Nfp_Device = new(1473, "Has_Nfp_Device"); + public static readonly GameAttributeB ReceivedPrimalWhenUnlocking = new(1474, "ReceivedPrimalWhenUnlocking"); + public static readonly GameAttributeB KanaiPowersunlocked = new(1475, "KanaiPowersunlocked"); + public static readonly GameAttributeB FourthKanaisCubeSlotunlocked = new(1476, "FourthKanai'sCubeSlotunlocked"); + public static readonly GameAttributeB Seasononlyitemsunlocked = new(1477, "Season-onlyitemsunlocked"); + public static readonly GameAttributeB Soul_shards_unlocked = new(1478, "Soulshardsunlocked"); + public static readonly GameAttributeB Item_was_sanctified = new(1479, "Itemwassanctified"); + public static readonly GameAttributeB Sanctified_items_unlocked = new(1480, "Sanctifieditemsunlocked"); #endregion } } diff --git a/src/DiIiS-NA/D3-GameServer/MessageSystem/GameAttribute.cs b/src/DiIiS-NA/D3-GameServer/MessageSystem/GameAttribute.cs index 7143795..7147b22 100644 --- a/src/DiIiS-NA/D3-GameServer/MessageSystem/GameAttribute.cs +++ b/src/DiIiS-NA/D3-GameServer/MessageSystem/GameAttribute.cs @@ -48,6 +48,7 @@ namespace DiIiS_NA.GameServer.MessageSystem } + // TODO: think about generic class here [StructLayout(LayoutKind.Explicit)] public struct GameAttributeValue { @@ -60,111 +61,101 @@ namespace DiIiS_NA.GameServer.MessageSystem public GameAttributeValue(float value) { Value = 0; ValueF = value; } } - public partial class GameAttribute + public abstract class GameAttribute { - public const float Float16Min = -65536.0f; - public const float Float16Max = 65536.0f; + public const float Float16Min = -65536.0f; + public const float Float16Max = 65536.0f; - public int Id; - public GameAttributeValue _DefaultValue; - public int U3; - public int U4; - public int U5; + public int Id { get; } + public abstract GameAttributeValue DefaultAttributeValue { get; } + public int U3 { get; } + public int U4 { get; } + public int U5 { get; } - public string ScriptA; - public string ScriptB; - public string Name; + public string Script { get; } + public string Name { get; } - public GameAttributeEncoding EncodingType; + public GameAttributeEncoding EncodingType { get; } - public ReplicationFlags Flags; + public ReplicationFlags Flags { get; } - public GameAttributeValue Min; - public GameAttributeValue Max; - public int BitCount; + public abstract GameAttributeValue MinAttributeValue { get; } + public abstract GameAttributeValue MaxAttributeValue { get; } + public int BitCount { get; } - public bool IsInteger { get { return EncodingType == GameAttributeEncoding.Int || EncodingType == GameAttributeEncoding.IntMinMax; } } + public bool IsInteger { get { return EncodingType == GameAttributeEncoding.Int || EncodingType == GameAttributeEncoding.IntMinMax; } } - // script stuff generated by ScritpedAttributeInitializer and used by GameAttributeMap - public Func ScriptFunc = null; - public List Dependents = null; - public bool ScriptedAndSettable = false; + // script stuff generated by ScritpedAttributeInitializer and used by GameAttributeMap + public Func ScriptFunc = null; + public List Dependents = null; + public bool ScriptedAndSettable = false; - public GameAttribute() { } - - public GameAttribute(int id, int defaultValue, int u3, int u4, int u5, string scriptA, string scriptB, string name, GameAttributeEncoding encodingType, byte flags, int min, int max, int bitCount) + protected GameAttribute(int id, string name, GameAttributeEncoding encodingType, int u3 = -1, int u4 = 0, int u5 = 0, string script = "", ReplicationFlags flags = 0, int bitCount = 32) { Id = id; - _DefaultValue.Value = defaultValue; - U3 = u3; - U4 = u4; - U5 = u5; - ScriptA = scriptA; - ScriptB = scriptB; - Name = name; - EncodingType = encodingType; - Flags = (ReplicationFlags)flags; + U3 = u3; + U4 = u4; + U5 = u5; + Script = (!string.IsNullOrEmpty(script) && script != "0") ? script : null; + Name = name; + EncodingType = encodingType; + Flags = flags; + BitCount = bitCount; + } - Min = new GameAttributeValue(min); - Max = new GameAttributeValue(max); - BitCount = bitCount; + public override string ToString() + { + return Name; + } + } + + public abstract class GameAttributeTyped : GameAttribute + { + + public T Default { get; set; } + public T Min { get; } + public T Max { get; } + + protected GameAttributeTyped(int id, string name, GameAttributeEncoding encodingType, T defaultValue, T min, T max, int u3 = -1, int u4 = 0, int u5 = 0, string script = "", ReplicationFlags flags = 0, int bitCount = 32) + : base(id, name, encodingType, u3, u4, u5, script, flags, bitCount) + { + Default = defaultValue; + Min = min; + Max = max; + } + } + + public class GameAttributeI : GameAttributeTyped + { + public override GameAttributeValue DefaultAttributeValue => new(Default); + public override GameAttributeValue MinAttributeValue => new(Min); + public override GameAttributeValue MaxAttributeValue => new(Max); + + public GameAttributeI(int id, string name, GameAttributeEncoding encodingType = GameAttributeEncoding.Int, int defaultValue = 0, int min = 0, int max = 0, int u3 = -1, int u4 = 0, int u5 = 0, string script = "", ReplicationFlags flags = 0, int bitCount = 32) + : base(id, name, encodingType, defaultValue, min, max, u3, u4, u5, script, flags, bitCount) { } + } - public GameAttribute(int id, float defaultValue, int u3, int u4, int u5, string scriptA, string scriptB, string name, GameAttributeEncoding encodingType, byte flags, float min, float max, int bitCount) - { - Id = id; - _DefaultValue.ValueF = defaultValue; - U3 = u3; - U4 = u4; - U5 = u5; - ScriptA = scriptA; - ScriptB = scriptB; - Name = name; - EncodingType = encodingType; - Flags = (ReplicationFlags)flags; + public class GameAttributeF : GameAttributeTyped + { + public override GameAttributeValue DefaultAttributeValue => new(Default); + public override GameAttributeValue MinAttributeValue => new(Min); + public override GameAttributeValue MaxAttributeValue => new(Max); - Min = new GameAttributeValue(min); - Max = new GameAttributeValue(max); - BitCount = bitCount; - } - } + public GameAttributeF(int id, string name, GameAttributeEncoding encodingType = GameAttributeEncoding.Float32, float defaultValue = 0, float min = 0, float max = 0, int u3 = -1, int u4 = 0, int u5 = 0, string script = "", ReplicationFlags flags = 0, int bitCount = 32) + : base(id, name, encodingType, defaultValue, min, max, u3, u4, u5, script, flags, bitCount) + { + } + } + public class GameAttributeB : GameAttributeTyped + { + public override GameAttributeValue DefaultAttributeValue => new(Default ? 1 : 0); + public override GameAttributeValue MinAttributeValue => new(Min ? 1 : 0); + public override GameAttributeValue MaxAttributeValue => new(Max ? 1 : 0); - - public class GameAttributeI : GameAttribute - { - public int DefaultValue { get { return _DefaultValue.Value; } } - - public GameAttributeI() { } - - public GameAttributeI(int id, int defaultValue, int u3, int u4, int u5, string scriptA, string scriptB, string name, GameAttributeEncoding encodingType, byte u10, int min, int max, int bitCount) - : base(id, defaultValue, u3, u4, u5, scriptA, scriptB, name, encodingType, u10, min, max, bitCount) - { - - } - } - - public class GameAttributeF : GameAttribute - { - public float DefaultValue { get { return _DefaultValue.ValueF; } } - - public GameAttributeF() { } - public GameAttributeF(int id, float defaultValue, int u3, int u4, int u5, string scriptA, string scriptB, string name, GameAttributeEncoding encodingType, byte u10, float min, float max, int bitCount) - : base(id, defaultValue, u3, u4, u5, scriptA, scriptB, name, encodingType, u10, min, max, bitCount) - { - - } - } - - public class GameAttributeB : GameAttribute - { - public bool DefaultValue { get { return _DefaultValue.Value != 0; } } - - public GameAttributeB() { } - public GameAttributeB(int id, int defaultValue, int u3, int u4, int u5, string scriptA, string scriptB, string name, GameAttributeEncoding encodingType, byte u10, int min, int max, int bitCount) - : base(id, defaultValue, u3, u4, u5, scriptA, scriptB, name, encodingType, u10, min, max, bitCount) - { - - } - - } + public GameAttributeB(int id, string name, GameAttributeEncoding encodingType = GameAttributeEncoding.IntMinMax, bool defaultValue = false, int u3 = -1, int u4 = 0, int u5 = 0, string script = "", ReplicationFlags flags = 0, int bitCount = 1) + : base(id, name, encodingType, defaultValue, false, true, u3, u4, u5, script, flags, bitCount) + { + } + } } diff --git a/src/DiIiS-NA/D3-GameServer/MessageSystem/Message/Definitions/Player/LoadCompleteMessage.cs b/src/DiIiS-NA/D3-GameServer/MessageSystem/Message/Definitions/Player/LoadCompleteMessage.cs index faddaf6..3663c43 100644 --- a/src/DiIiS-NA/D3-GameServer/MessageSystem/Message/Definitions/Player/LoadCompleteMessage.cs +++ b/src/DiIiS-NA/D3-GameServer/MessageSystem/Message/Definitions/Player/LoadCompleteMessage.cs @@ -9,22 +9,22 @@ namespace DiIiS_NA.GameServer.MessageSystem.Message.Definitions.Player public void Handle(GameClient client) { - client.Player.Attributes[GameAttribute.Banter_Cooldown, 0xFFFFF] = 0x000007C9; - client.Player.Attributes[GameAttribute.Buff_Visual_Effect, 0x20CBE] = true; - client.Player.Attributes[GameAttribute.Buff_Visual_Effect, 0x33C40] = false; - client.Player.Attributes[GameAttribute.Immobolize] = false; - client.Player.Attributes[GameAttribute.Untargetable] = false; - client.Player.Attributes[GameAttribute.CantStartDisplayedPowers] = false; - client.Player.Attributes[GameAttribute.Buff_Icon_Start_Tick0, 0x20CBE] = 0xC1; - client.Player.Attributes[GameAttribute.Disabled] = false; - client.Player.Attributes[GameAttribute.Hidden] = false; - client.Player.Attributes[GameAttribute.Buff_Icon_Count0, 0x33C40] = 0; - client.Player.Attributes[GameAttribute.Buff_Icon_End_Tick0, 0x20CBE] = 0x7C9; - client.Player.Attributes[GameAttribute.Loading] = false; - client.Player.Attributes[GameAttribute.Buff_Icon_End_Tick0, 0x33C40] = 0; - client.Player.Attributes[GameAttribute.Invulnerable] = false; - client.Player.Attributes[GameAttribute.Buff_Icon_Count0, 0x20CBE] = 1; - client.Player.Attributes[GameAttribute.Buff_Icon_Start_Tick0, 0x33C40] = 0; + client.Player.Attributes[GameAttributes.Banter_Cooldown, 0xFFFFF] = 0x000007C9; + client.Player.Attributes[GameAttributes.Buff_Visual_Effect, 0x20CBE] = true; + client.Player.Attributes[GameAttributes.Buff_Visual_Effect, 0x33C40] = false; + client.Player.Attributes[GameAttributes.Immobolize] = false; + client.Player.Attributes[GameAttributes.Untargetable] = false; + client.Player.Attributes[GameAttributes.CantStartDisplayedPowers] = false; + client.Player.Attributes[GameAttributes.Buff_Icon_Start_Tick0, 0x20CBE] = 0xC1; + client.Player.Attributes[GameAttributes.Disabled] = false; + client.Player.Attributes[GameAttributes.Hidden] = false; + client.Player.Attributes[GameAttributes.Buff_Icon_Count0, 0x33C40] = 0; + client.Player.Attributes[GameAttributes.Buff_Icon_End_Tick0, 0x20CBE] = 0x7C9; + client.Player.Attributes[GameAttributes.Loading] = false; + client.Player.Attributes[GameAttributes.Buff_Icon_End_Tick0, 0x33C40] = 0; + client.Player.Attributes[GameAttributes.Invulnerable] = false; + client.Player.Attributes[GameAttributes.Buff_Icon_Count0, 0x20CBE] = 1; + client.Player.Attributes[GameAttributes.Buff_Icon_Start_Tick0, 0x33C40] = 0; client.Player.Attributes.BroadcastChangedIfRevealed(); } diff --git a/src/DiIiS-NA/D3-GameServer/MessageSystem/Message/Fields/NetAttributeKeyValue.cs b/src/DiIiS-NA/D3-GameServer/MessageSystem/Message/Fields/NetAttributeKeyValue.cs index 053daf3..48de669 100644 --- a/src/DiIiS-NA/D3-GameServer/MessageSystem/Message/Fields/NetAttributeKeyValue.cs +++ b/src/DiIiS-NA/D3-GameServer/MessageSystem/Message/Fields/NetAttributeKeyValue.cs @@ -21,9 +21,9 @@ namespace DiIiS_NA.GameServer.MessageSystem.Message.Fields { KeyParam = buffer.ReadInt(20); } - int index = buffer.ReadInt(11);// & 0xFFF; + int id = buffer.ReadInt(11);// & 0xFFF; - Attribute = GameAttribute.Attributes[index]; + Attribute = GameAttributes.Attributes[id]; } public void ParseValue(GameBitBuffer buffer) @@ -34,7 +34,7 @@ namespace DiIiS_NA.GameServer.MessageSystem.Message.Fields Int = buffer.ReadInt(Attribute.BitCount); break; case GameAttributeEncoding.IntMinMax: - Int = buffer.ReadInt(Attribute.BitCount) + Attribute.Min.Value; + Int = buffer.ReadInt(Attribute.BitCount) + Attribute.MinAttributeValue.Value; break; case GameAttributeEncoding.Float16: Float = buffer.ReadFloat16(); @@ -68,7 +68,7 @@ namespace DiIiS_NA.GameServer.MessageSystem.Message.Fields buffer.WriteInt(Attribute.BitCount, Int); break; case GameAttributeEncoding.IntMinMax: - buffer.WriteInt(Attribute.BitCount, Int - Attribute.Min.Value); + buffer.WriteInt(Attribute.BitCount, Int - Attribute.MinAttributeValue.Value); break; case GameAttributeEncoding.Float16: buffer.WriteFloat16(Float); diff --git a/src/DiIiS-NA/D3-GameServer/MessageSystem/ScriptedAttributeInitializer.cs b/src/DiIiS-NA/D3-GameServer/MessageSystem/ScriptedAttributeInitializer.cs index 969bd41..c42a194 100644 --- a/src/DiIiS-NA/D3-GameServer/MessageSystem/ScriptedAttributeInitializer.cs +++ b/src/DiIiS-NA/D3-GameServer/MessageSystem/ScriptedAttributeInitializer.cs @@ -30,7 +30,7 @@ namespace DiIiS_NA.GameServer.MessageSystem #endregion - public static void ProcessAttributes(GameAttribute[] attributes) + public static void ProcessAttributes(ICollection attributes) { // build string -> GameAttribute lookup var attributeLookup = attributes.ToDictionary(attr => attr.Name); @@ -38,25 +38,15 @@ namespace DiIiS_NA.GameServer.MessageSystem var csharpScripts = new Dictionary(); // generate C#-compatible source lines from scripts and create attribute dependency lists - foreach (GameAttribute attr in attributes) + foreach (var attr in attributes.Where(a => !string.IsNullOrEmpty(a.Script))) { - // check for valid script in the attribute and select it - string script; - - if (attr.ScriptA.Length > 0 && attr.ScriptA != "0") - script = attr.ScriptA; - else if (attr.ScriptB.Length > 0 && attr.ScriptB != "0") - script = attr.ScriptB; - else - continue; // no valid script, done processing this attribute - // by default all scripts are not settable // can be set to true if self-referring identifier is found attr.ScriptedAndSettable = false; // replace attribute references with GameAttributeMap lookups // also record all attributes used by script into each attribute's dependency list - script = Regex.Replace(script, @"([A-Za-z_]\w*)(\.Agg)?(\#[A-Za-z_]\w*)?(?=[^\(\w]|\z)( \?)?", + var script = Regex.Replace(attr.Script, @"([A-Za-z_]\w*)(\.Agg)?(\#[A-Za-z_]\w*)?(?=[^\(\w]|\z)( \?)?", (match) => { // lookup attribute object @@ -64,7 +54,7 @@ namespace DiIiS_NA.GameServer.MessageSystem if (!attributeLookup.ContainsKey(identifierName)) throw new ScriptedAttributeInitializerError("invalid identifer parsed: " + identifierName); - GameAttribute identifier = attributeLookup[identifierName]; + var identifier = attributeLookup[identifierName]; // key selection int? key = null; @@ -73,24 +63,19 @@ namespace DiIiS_NA.GameServer.MessageSystem if (match.Groups[3].Success) { - switch (match.Groups[3].Value.ToUpper()) - { - case "#NONE": key = null; break; - case "#PHYSICAL": key = 0; break; - case "#FIRE": key = 1; break; - case "#LIGHTNING": key = 2; break; - case "#COLD": key = 3; break; - case "#POISON": key = 4; break; - case "#ARCANE": key = 5; break; - case "#HOLY": key = 6; break; - default: - throw new ScriptedAttributeInitializerError("error processing attribute script, invalid key in identifier: " + match.Groups[3].Value); - } - - if (key == null) - keyString = "null"; - else - keyString = key.ToString(); + key = match.Groups[3].Value.ToUpper() switch + { + "#NONE" => null, + "#PHYSICAL" => 0, + "#FIRE" => 1, + "#LIGHTNING" => 2, + "#COLD" => 3, + "#POISON" => 4, + "#ARCANE" => 5, + "#HOLY" => 6, + _ => throw new ScriptedAttributeInitializerError("error processing attribute script, invalid key in identifier: " + match.Groups[3].Value), + }; + keyString = (key == null) ? "null" : key.ToString(); usesExplicitKey = true; } @@ -104,18 +89,17 @@ namespace DiIiS_NA.GameServer.MessageSystem if (match.Groups[2].Success) { attr.ScriptedAndSettable = true; - return "_map._RawGetAttribute(GameAttribute." + identifierName + return "_map._RawGetAttribute(GameAttributes." + identifierName + ", " + keyString + ")" + compare; } // record dependency - if (identifier.Dependents == null) - identifier.Dependents = new List(); + identifier.Dependents ??= new List(); identifier.Dependents.Add(new GameAttributeDependency(attr, key, usesExplicitKey, false)); // generate normal lookup - return "_map[GameAttribute." + identifierName + ", " + keyString + "]" + compare; + return "_map[GameAttributes." + identifierName + ", " + keyString + "]" + compare; }); // transform function calls into C# equivalents @@ -132,10 +116,19 @@ namespace DiIiS_NA.GameServer.MessageSystem // generate and write final C# code to file string sourcePathBase = Path.Combine(Path.GetTempPath(), "DiIiSScriptedAttributeFuncs"); + var formattedScripts = csharpScripts.Select( + // write out full Func static class field + s => string.Format( + " public static Func {0} = (_map, _key) => new GameAttributeValue(({1})({2}));", + s.Key.Name, + // select output type cast to ensure it matches attribute type + s.Key is GameAttributeF ? "float" : "int", + s.Value + ) + + ); - string codeToCompile = ""; - codeToCompile += - + var codeToCompile = @"using System; using System.Runtime; using DiIiS_NA.GameServer.MessageSystem; @@ -146,20 +139,7 @@ namespace DiIiS_NA.GameServer.MessageSystem.GeneratedCode public class ScriptedAttributeFuncs { "; - foreach (var scriptEntry in csharpScripts) - { - // select output type cast to ensure it matches attribute type - string castType = scriptEntry.Key is GameAttributeF ? "float" : "int"; - - // write out full Func static class field - codeToCompile += - string.Format(" public static Func {0} = (_map, _key) => new GameAttributeValue(({1})({2}));", - scriptEntry.Key.Name, - castType, - scriptEntry.Value - ); - } - + codeToCompile += string.Join("\r\n", formattedScripts); codeToCompile += @" } }