mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-03 12:03:50 +00:00
feat: resolve spell \$s1/\$s2/\$s3 to real DBC damage/heal values
Spell descriptions now substitute \$s1/\$s2/\$s3 template variables with actual effect base points from Spell.dbc (field 80/81/82). For example: "causes \$s1 Fire Damage" → "causes 562 Fire Damage". Implementation: - Added EffectBasePoints0/1/2 to all 4 expansion DBC layouts - SpellNameEntry now stores effectBasePoints[3] - loadSpellNameCache reads base points during DBC iteration - cleanSpellDescription substitutes \$s1→abs(base)+1 when available - getSpellEffectBasePoints() accessor on GameHandler Values are DBC base points (before spell power scaling). Still uses "X" placeholder for unresolved variables (\$d, \$o1, etc.).
This commit is contained in:
parent
f9464dbacd
commit
a5aa1faf7a
7 changed files with 852 additions and 804 deletions
|
|
@ -1,109 +1,65 @@
|
|||
{
|
||||
"Spell": {
|
||||
"Achievement": {
|
||||
"Description": 21,
|
||||
"ID": 0,
|
||||
"Attributes": 4,
|
||||
"AttributesEx": 5,
|
||||
"IconID": 133,
|
||||
"Name": 136,
|
||||
"Tooltip": 139,
|
||||
"Rank": 153,
|
||||
"SchoolMask": 225,
|
||||
"PowerType": 14,
|
||||
"ManaCost": 39,
|
||||
"CastingTimeIndex": 47,
|
||||
"RangeIndex": 49,
|
||||
"DispelType": 2
|
||||
"Points": 39,
|
||||
"Title": 4
|
||||
},
|
||||
"SpellRange": {
|
||||
"MaxRange": 4
|
||||
},
|
||||
"ItemDisplayInfo": {
|
||||
"AchievementCriteria": {
|
||||
"AchievementID": 1,
|
||||
"Description": 9,
|
||||
"ID": 0,
|
||||
"LeftModel": 1,
|
||||
"LeftModelTexture": 3,
|
||||
"InventoryIcon": 5,
|
||||
"GeosetGroup1": 7,
|
||||
"GeosetGroup3": 9,
|
||||
"TextureArmUpper": 14,
|
||||
"TextureArmLower": 15,
|
||||
"TextureHand": 16,
|
||||
"TextureTorsoUpper": 17,
|
||||
"TextureTorsoLower": 18,
|
||||
"TextureLegUpper": 19,
|
||||
"TextureLegLower": 20,
|
||||
"TextureFoot": 21
|
||||
"Quantity": 4
|
||||
},
|
||||
"CharSections": {
|
||||
"AreaTable": {
|
||||
"ExploreFlag": 3,
|
||||
"ID": 0,
|
||||
"MapID": 1,
|
||||
"ParentAreaNum": 2
|
||||
},
|
||||
"CharHairGeosets": {
|
||||
"GeosetID": 4,
|
||||
"RaceID": 1,
|
||||
"SexID": 2,
|
||||
"Variation": 3
|
||||
},
|
||||
"CharSections": {
|
||||
"BaseSection": 3,
|
||||
"VariationIndex": 4,
|
||||
"ColorIndex": 5,
|
||||
"Flags": 9,
|
||||
"RaceID": 1,
|
||||
"SexID": 2,
|
||||
"Texture1": 6,
|
||||
"Texture2": 7,
|
||||
"Texture3": 8,
|
||||
"Flags": 9
|
||||
},
|
||||
"SpellIcon": {
|
||||
"ID": 0,
|
||||
"Path": 1
|
||||
},
|
||||
"FactionTemplate": {
|
||||
"ID": 0,
|
||||
"Faction": 1,
|
||||
"FactionGroup": 3,
|
||||
"FriendGroup": 4,
|
||||
"EnemyGroup": 5,
|
||||
"Enemy0": 6,
|
||||
"Enemy1": 7,
|
||||
"Enemy2": 8,
|
||||
"Enemy3": 9
|
||||
},
|
||||
"Faction": {
|
||||
"ID": 0,
|
||||
"ReputationRaceMask0": 2,
|
||||
"ReputationRaceMask1": 3,
|
||||
"ReputationRaceMask2": 4,
|
||||
"ReputationRaceMask3": 5,
|
||||
"ReputationBase0": 10,
|
||||
"ReputationBase1": 11,
|
||||
"ReputationBase2": 12,
|
||||
"ReputationBase3": 13
|
||||
"VariationIndex": 4
|
||||
},
|
||||
"CharTitles": {
|
||||
"ID": 0,
|
||||
"Title": 2,
|
||||
"TitleBit": 36
|
||||
},
|
||||
"Achievement": {
|
||||
"ID": 0,
|
||||
"Title": 4,
|
||||
"Description": 21,
|
||||
"Points": 39
|
||||
"CharacterFacialHairStyles": {
|
||||
"Geoset100": 3,
|
||||
"Geoset200": 5,
|
||||
"Geoset300": 4,
|
||||
"RaceID": 0,
|
||||
"SexID": 1,
|
||||
"Variation": 2
|
||||
},
|
||||
"AchievementCriteria": {
|
||||
"CreatureDisplayInfo": {
|
||||
"ExtraDisplayId": 3,
|
||||
"ID": 0,
|
||||
"AchievementID": 1,
|
||||
"Quantity": 4,
|
||||
"Description": 9
|
||||
},
|
||||
"AreaTable": {
|
||||
"ID": 0,
|
||||
"MapID": 1,
|
||||
"ParentAreaNum": 2,
|
||||
"ExploreFlag": 3
|
||||
"ModelID": 1,
|
||||
"Skin1": 6,
|
||||
"Skin2": 7,
|
||||
"Skin3": 8
|
||||
},
|
||||
"CreatureDisplayInfoExtra": {
|
||||
"ID": 0,
|
||||
"RaceID": 1,
|
||||
"SexID": 2,
|
||||
"SkinID": 3,
|
||||
"FaceID": 4,
|
||||
"HairStyleID": 5,
|
||||
"HairColorID": 6,
|
||||
"FacialHairID": 7,
|
||||
"BakeName": 20,
|
||||
"EquipDisplay0": 8,
|
||||
"EquipDisplay1": 9,
|
||||
"EquipDisplay10": 18,
|
||||
"EquipDisplay2": 10,
|
||||
"EquipDisplay3": 11,
|
||||
"EquipDisplay4": 12,
|
||||
|
|
@ -112,158 +68,80 @@
|
|||
"EquipDisplay7": 15,
|
||||
"EquipDisplay8": 16,
|
||||
"EquipDisplay9": 17,
|
||||
"EquipDisplay10": 18,
|
||||
"BakeName": 20
|
||||
},
|
||||
"CreatureDisplayInfo": {
|
||||
"FaceID": 4,
|
||||
"FacialHairID": 7,
|
||||
"HairColorID": 6,
|
||||
"HairStyleID": 5,
|
||||
"ID": 0,
|
||||
"ModelID": 1,
|
||||
"ExtraDisplayId": 3,
|
||||
"Skin1": 6,
|
||||
"Skin2": 7,
|
||||
"Skin3": 8
|
||||
},
|
||||
"TaxiNodes": {
|
||||
"ID": 0,
|
||||
"MapID": 1,
|
||||
"X": 2,
|
||||
"Y": 3,
|
||||
"Z": 4,
|
||||
"Name": 5,
|
||||
"MountDisplayIdAllianceFallback": 20,
|
||||
"MountDisplayIdHordeFallback": 21,
|
||||
"MountDisplayIdAlliance": 22,
|
||||
"MountDisplayIdHorde": 23
|
||||
},
|
||||
"TaxiPath": {
|
||||
"ID": 0,
|
||||
"FromNode": 1,
|
||||
"ToNode": 2,
|
||||
"Cost": 3
|
||||
},
|
||||
"TaxiPathNode": {
|
||||
"ID": 0,
|
||||
"PathID": 1,
|
||||
"NodeIndex": 2,
|
||||
"MapID": 3,
|
||||
"X": 4,
|
||||
"Y": 5,
|
||||
"Z": 6
|
||||
},
|
||||
"TalentTab": {
|
||||
"ID": 0,
|
||||
"Name": 1,
|
||||
"ClassMask": 20,
|
||||
"OrderIndex": 22,
|
||||
"BackgroundFile": 23
|
||||
},
|
||||
"Talent": {
|
||||
"ID": 0,
|
||||
"TabID": 1,
|
||||
"Row": 2,
|
||||
"Column": 3,
|
||||
"RankSpell0": 4,
|
||||
"PrereqTalent0": 9,
|
||||
"PrereqRank0": 12
|
||||
},
|
||||
"SkillLineAbility": {
|
||||
"SkillLineID": 1,
|
||||
"SpellID": 2
|
||||
},
|
||||
"SkillLine": {
|
||||
"ID": 0,
|
||||
"Category": 1,
|
||||
"Name": 3
|
||||
},
|
||||
"Map": {
|
||||
"ID": 0,
|
||||
"InternalName": 1
|
||||
"RaceID": 1,
|
||||
"SexID": 2,
|
||||
"SkinID": 3
|
||||
},
|
||||
"CreatureModelData": {
|
||||
"ID": 0,
|
||||
"ModelPath": 2
|
||||
},
|
||||
"CharHairGeosets": {
|
||||
"RaceID": 1,
|
||||
"SexID": 2,
|
||||
"Variation": 3,
|
||||
"GeosetID": 4
|
||||
},
|
||||
"CharacterFacialHairStyles": {
|
||||
"RaceID": 0,
|
||||
"SexID": 1,
|
||||
"Variation": 2,
|
||||
"Geoset100": 3,
|
||||
"Geoset300": 4,
|
||||
"Geoset200": 5
|
||||
},
|
||||
"GameObjectDisplayInfo": {
|
||||
"ID": 0,
|
||||
"ModelName": 1
|
||||
},
|
||||
"Emotes": {
|
||||
"ID": 0,
|
||||
"AnimID": 2
|
||||
"AnimID": 2,
|
||||
"ID": 0
|
||||
},
|
||||
"EmotesText": {
|
||||
"ID": 0,
|
||||
"Command": 1,
|
||||
"EmoteRef": 2,
|
||||
"OthersTargetTextID": 3,
|
||||
"SenderTargetTextID": 5,
|
||||
"ID": 0,
|
||||
"OthersNoTargetTextID": 7,
|
||||
"SenderNoTargetTextID": 9
|
||||
"OthersTargetTextID": 3,
|
||||
"SenderNoTargetTextID": 9,
|
||||
"SenderTargetTextID": 5
|
||||
},
|
||||
"EmotesTextData": {
|
||||
"ID": 0,
|
||||
"Text": 1
|
||||
},
|
||||
"Light": {
|
||||
"Faction": {
|
||||
"ID": 0,
|
||||
"MapID": 1,
|
||||
"X": 2,
|
||||
"Z": 3,
|
||||
"Y": 4,
|
||||
"InnerRadius": 5,
|
||||
"OuterRadius": 6,
|
||||
"LightParamsID": 7,
|
||||
"LightParamsIDRain": 8,
|
||||
"LightParamsIDUnderwater": 9
|
||||
"ReputationBase0": 10,
|
||||
"ReputationBase1": 11,
|
||||
"ReputationBase2": 12,
|
||||
"ReputationBase3": 13,
|
||||
"ReputationRaceMask0": 2,
|
||||
"ReputationRaceMask1": 3,
|
||||
"ReputationRaceMask2": 4,
|
||||
"ReputationRaceMask3": 5
|
||||
},
|
||||
"LightParams": {
|
||||
"LightParamsID": 0
|
||||
"FactionTemplate": {
|
||||
"Enemy0": 6,
|
||||
"Enemy1": 7,
|
||||
"Enemy2": 8,
|
||||
"Enemy3": 9,
|
||||
"EnemyGroup": 5,
|
||||
"Faction": 1,
|
||||
"FactionGroup": 3,
|
||||
"FriendGroup": 4,
|
||||
"ID": 0
|
||||
},
|
||||
"LightIntBand": {
|
||||
"BlockIndex": 1,
|
||||
"NumKeyframes": 2,
|
||||
"TimeKey0": 3,
|
||||
"Value0": 19
|
||||
},
|
||||
"LightFloatBand": {
|
||||
"BlockIndex": 1,
|
||||
"NumKeyframes": 2,
|
||||
"TimeKey0": 3,
|
||||
"Value0": 19
|
||||
},
|
||||
"WorldMapArea": {
|
||||
"GameObjectDisplayInfo": {
|
||||
"ID": 0,
|
||||
"MapID": 1,
|
||||
"AreaID": 2,
|
||||
"AreaName": 3,
|
||||
"LocLeft": 4,
|
||||
"LocRight": 5,
|
||||
"LocTop": 6,
|
||||
"LocBottom": 7,
|
||||
"DisplayMapID": 8,
|
||||
"ParentWorldMapID": 10
|
||||
"ModelName": 1
|
||||
},
|
||||
"SpellItemEnchantment": {
|
||||
"ItemDisplayInfo": {
|
||||
"GeosetGroup1": 7,
|
||||
"GeosetGroup3": 9,
|
||||
"ID": 0,
|
||||
"Name": 8
|
||||
"InventoryIcon": 5,
|
||||
"LeftModel": 1,
|
||||
"LeftModelTexture": 3,
|
||||
"TextureArmLower": 15,
|
||||
"TextureArmUpper": 14,
|
||||
"TextureFoot": 21,
|
||||
"TextureHand": 16,
|
||||
"TextureLegLower": 20,
|
||||
"TextureLegUpper": 19,
|
||||
"TextureTorsoLower": 18,
|
||||
"TextureTorsoUpper": 17
|
||||
},
|
||||
"ItemSet": {
|
||||
"ID": 0,
|
||||
"Name": 1,
|
||||
"Item0": 18,
|
||||
"Item1": 19,
|
||||
"Item2": 20,
|
||||
|
|
@ -274,6 +152,7 @@
|
|||
"Item7": 25,
|
||||
"Item8": 26,
|
||||
"Item9": 27,
|
||||
"Name": 1,
|
||||
"Spell0": 28,
|
||||
"Spell1": 29,
|
||||
"Spell2": 30,
|
||||
|
|
@ -299,21 +178,145 @@
|
|||
"ID": 0,
|
||||
"Name": 1
|
||||
},
|
||||
"SpellVisual": {
|
||||
"Light": {
|
||||
"ID": 0,
|
||||
"InnerRadius": 5,
|
||||
"LightParamsID": 7,
|
||||
"LightParamsIDRain": 8,
|
||||
"LightParamsIDUnderwater": 9,
|
||||
"MapID": 1,
|
||||
"OuterRadius": 6,
|
||||
"X": 2,
|
||||
"Y": 4,
|
||||
"Z": 3
|
||||
},
|
||||
"LightFloatBand": {
|
||||
"BlockIndex": 1,
|
||||
"NumKeyframes": 2,
|
||||
"TimeKey0": 3,
|
||||
"Value0": 19
|
||||
},
|
||||
"LightIntBand": {
|
||||
"BlockIndex": 1,
|
||||
"NumKeyframes": 2,
|
||||
"TimeKey0": 3,
|
||||
"Value0": 19
|
||||
},
|
||||
"LightParams": {
|
||||
"LightParamsID": 0
|
||||
},
|
||||
"Map": {
|
||||
"ID": 0,
|
||||
"InternalName": 1
|
||||
},
|
||||
"SkillLine": {
|
||||
"Category": 1,
|
||||
"ID": 0,
|
||||
"Name": 3
|
||||
},
|
||||
"SkillLineAbility": {
|
||||
"SkillLineID": 1,
|
||||
"SpellID": 2
|
||||
},
|
||||
"Spell": {
|
||||
"Attributes": 4,
|
||||
"AttributesEx": 5,
|
||||
"CastingTimeIndex": 47,
|
||||
"DispelType": 2,
|
||||
"EffectBasePoints0": 80,
|
||||
"EffectBasePoints1": 81,
|
||||
"EffectBasePoints2": 82,
|
||||
"ID": 0,
|
||||
"IconID": 133,
|
||||
"ManaCost": 39,
|
||||
"Name": 136,
|
||||
"PowerType": 14,
|
||||
"RangeIndex": 49,
|
||||
"Rank": 153,
|
||||
"SchoolMask": 225,
|
||||
"Tooltip": 139
|
||||
},
|
||||
"SpellIcon": {
|
||||
"ID": 0,
|
||||
"Path": 1
|
||||
},
|
||||
"SpellItemEnchantment": {
|
||||
"ID": 0,
|
||||
"Name": 8
|
||||
},
|
||||
"SpellRange": {
|
||||
"MaxRange": 4
|
||||
},
|
||||
"SpellVisual": {
|
||||
"CastKit": 2,
|
||||
"ID": 0,
|
||||
"ImpactKit": 3,
|
||||
"MissileModel": 8
|
||||
},
|
||||
"SpellVisualEffectName": {
|
||||
"FilePath": 2,
|
||||
"ID": 0
|
||||
},
|
||||
"SpellVisualKit": {
|
||||
"ID": 0,
|
||||
"BaseEffect": 5,
|
||||
"ID": 0,
|
||||
"SpecialEffect0": 11,
|
||||
"SpecialEffect1": 12,
|
||||
"SpecialEffect2": 13
|
||||
},
|
||||
"SpellVisualEffectName": {
|
||||
"Talent": {
|
||||
"Column": 3,
|
||||
"ID": 0,
|
||||
"FilePath": 2
|
||||
"PrereqRank0": 12,
|
||||
"PrereqTalent0": 9,
|
||||
"RankSpell0": 4,
|
||||
"Row": 2,
|
||||
"TabID": 1
|
||||
},
|
||||
"TalentTab": {
|
||||
"BackgroundFile": 23,
|
||||
"ClassMask": 20,
|
||||
"ID": 0,
|
||||
"Name": 1,
|
||||
"OrderIndex": 22
|
||||
},
|
||||
"TaxiNodes": {
|
||||
"ID": 0,
|
||||
"MapID": 1,
|
||||
"MountDisplayIdAlliance": 22,
|
||||
"MountDisplayIdAllianceFallback": 20,
|
||||
"MountDisplayIdHorde": 23,
|
||||
"MountDisplayIdHordeFallback": 21,
|
||||
"Name": 5,
|
||||
"X": 2,
|
||||
"Y": 3,
|
||||
"Z": 4
|
||||
},
|
||||
"TaxiPath": {
|
||||
"Cost": 3,
|
||||
"FromNode": 1,
|
||||
"ID": 0,
|
||||
"ToNode": 2
|
||||
},
|
||||
"TaxiPathNode": {
|
||||
"ID": 0,
|
||||
"MapID": 3,
|
||||
"NodeIndex": 2,
|
||||
"PathID": 1,
|
||||
"X": 4,
|
||||
"Y": 5,
|
||||
"Z": 6
|
||||
},
|
||||
"WorldMapArea": {
|
||||
"AreaID": 2,
|
||||
"AreaName": 3,
|
||||
"DisplayMapID": 8,
|
||||
"ID": 0,
|
||||
"LocBottom": 7,
|
||||
"LocLeft": 4,
|
||||
"LocRight": 5,
|
||||
"LocTop": 6,
|
||||
"MapID": 1,
|
||||
"ParentWorldMapID": 10
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue