Skip to content

Commit 6dc083d

Browse files
authored
Merge pull request wowsims#45 from wowsims/fix/rogue
Fix most missing Gems and Enchants
2 parents 20a6a03 + c9d6fba commit 6dc083d

15 files changed

Lines changed: 5417 additions & 469 deletions

File tree

assets/database/db.bin

659 KB
Binary file not shown.

assets/database/db.json

Lines changed: 4796 additions & 22 deletions
Large diffs are not rendered by default.

assets/database/leftover_db.bin

-49.7 KB
Binary file not shown.

assets/database/leftover_db.json

Lines changed: 152 additions & 232 deletions
Large diffs are not rendered by default.

assets/enchants/descriptions.json

Lines changed: 261 additions & 165 deletions
Large diffs are not rendered by default.

sim/common/tbc/stat_bonus_cds_auto_gen.go

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,25 @@ func RegisterAllOnUseCds() {
99
// Agility
1010
shared.NewSimpleStatActive(32658) // Badge of Tenacity
1111

12+
// ArcaneResistance
13+
shared.NewSimpleStatActive(15867) // Prismcharm
14+
shared.NewSimpleStatActive(23042) // Loatheb's Reflection
15+
1216
// Armor
17+
shared.NewSimpleStatActive(19345) // Aegis of Preservation
1318
shared.NewSimpleStatActive(27891) // Adamantine Figurine
1419
shared.NewSimpleStatActive(33830) // Ancient Aqir Artifact
1520

1621
// AttackPower
22+
shared.NewSimpleStatActive(14554) // Cloudkeeper Legplates
23+
shared.NewSimpleStatActive(21180) // Earthstrike
24+
shared.NewSimpleStatActive(23041) // Slayer's Crest
1725
shared.NewSimpleStatActive(24128) // Figurine - Nightseye Panther
1826
shared.NewSimpleStatActive(25628) // Ogre Mauler's Badge
1927
shared.NewSimpleStatActive(25633) // Uniting Charm
28+
shared.NewSimpleStatActive(25937) // Terokkar Tablet of Precision
29+
shared.NewSimpleStatActive(25994) // Rune of Force
30+
shared.NewSimpleStatActive(28041) // Bladefist's Breadth
2031
shared.NewSimpleStatActive(29383) // Bloodlust Brooch
2132
shared.NewSimpleStatActive(29776) // Core of Ar'kelos
2233
shared.NewSimpleStatActive(30629) // Scarab of Displacement
@@ -28,9 +39,13 @@ func RegisterAllOnUseCds() {
2839

2940
// DodgeRating
3041
shared.NewSimpleStatActive(24125) // Figurine - Dawnstone Crab
42+
shared.NewSimpleStatActive(25787) // Charm of Alacrity
3143
shared.NewSimpleStatActive(28528) // Moroes' Lucky Pocket Watch
3244
shared.NewSimpleStatActive(35693) // Figurine - Empyrean Tortoise
3345

46+
// FireResistance
47+
shared.NewSimpleStatActive(13164) // Heart of the Scale
48+
3449
// Health
3550
shared.NewSimpleStatActive(33832) // Battlemaster's Determination
3651
shared.NewSimpleStatActive(34049) // Battlemaster's Audacity
@@ -44,15 +59,42 @@ func RegisterAllOnUseCds() {
4459
shared.NewSimpleStatActive(24114) // Braided Eternium Chain
4560

4661
// MeleeHasteRating
62+
shared.NewSimpleStatActive(22954) // Kiss of the Spider
4763
shared.NewSimpleStatActive(28288) // Abacus of Violent Odds
4864

65+
// SpellCritRating
66+
shared.NewSimpleStatActive(19952) // Gri'lek's Charm of Valor
67+
shared.NewSimpleStatActive(19957) // Hazza'rah's Charm of Destruction
68+
4969
// SpellHasteRating
70+
shared.NewSimpleStatActive(19339) // Mind Quickening Gem
71+
shared.NewSimpleStatActive(19343) // Scrolls of Blinding Light
72+
shared.NewSimpleStatActive(19955) // Wushoolay's Charm of Nature
73+
shared.NewSimpleStatActive(19958) // Hazza'rah's Charm of Healing
5074
shared.NewSimpleStatActive(32483) // The Skull of Gul'dan
5175

76+
// SpellHitRating
77+
shared.NewSimpleStatActive(19947) // Nat Pagle's Broken Reel
78+
5279
// SpellPower
80+
shared.NewSimpleStatActive(18820) // Talisman of Ephemeral Power
81+
shared.NewSimpleStatActive(19337) // The Black Book
82+
shared.NewSimpleStatActive(19344) // Natural Alignment Crystal
83+
shared.NewSimpleStatActive(19959) // Hazza'rah's Charm of Magic
84+
shared.NewSimpleStatActive(20636) // Hibernation Crystal
85+
shared.NewSimpleStatActive(21473) // Eye of Moam
86+
shared.NewSimpleStatActive(22268) // Draconic Infused Emblem
87+
shared.NewSimpleStatActive(22678) // Talisman of Ascendance
88+
shared.NewSimpleStatActive(23046) // The Restrained Essence of Sapphiron
89+
shared.NewSimpleStatActive(23047) // Eye of the Dead
5390
shared.NewSimpleStatActive(24126) // Figurine - Living Ruby Serpent
91+
shared.NewSimpleStatActive(25619) // Glowing Crystal Insignia
92+
shared.NewSimpleStatActive(25620) // Ancient Crystal Talisman
5493
shared.NewSimpleStatActive(25634) // Oshu'gun Relic
94+
shared.NewSimpleStatActive(25936) // Terokkar Tablet of Vim
95+
shared.NewSimpleStatActive(25995) // Star of Sha'naar
5596
shared.NewSimpleStatActive(27828) // Warp-Scarab Brooch
97+
shared.NewSimpleStatActive(28040) // Vengeance of the Illidari
5698
shared.NewSimpleStatActive(28223) // Arcanist's Stone
5799
shared.NewSimpleStatActive(29132) // Scryer's Bloodgem
58100
shared.NewSimpleStatActive(29179) // Xi'ri's Gift
@@ -70,11 +112,73 @@ func RegisterAllOnUseCds() {
70112
shared.NewSimpleStatActive(28370) // Bangle of Endless Blessings
71113

72114
// Strength
115+
shared.NewSimpleStatActive(10455) // Chained Essence of Eranikus
116+
shared.NewSimpleStatActive(12185) // Bloodsail Admiral's Hat
117+
shared.NewSimpleStatActive(13143) // Mark of the Dragon Lord
118+
shared.NewSimpleStatActive(13171) // Smokey's Lighter
119+
shared.NewSimpleStatActive(13213) // Smolderweb's Eye
120+
shared.NewSimpleStatActive(13353) // Book of the Dead
121+
shared.NewSimpleStatActive(13382) // Cannonball Runner
122+
shared.NewSimpleStatActive(13515) // Ramstein's Lightning Bolts
123+
shared.NewSimpleStatActive(13937) // Headmaster's Charge
124+
shared.NewSimpleStatActive(14022) // Barov Peasant Caller
125+
shared.NewSimpleStatActive(14023) // Barov Peasant Caller
126+
shared.NewSimpleStatActive(14152) // Robe of the Archmage
127+
shared.NewSimpleStatActive(14153) // Robe of the Void
128+
shared.NewSimpleStatActive(15873) // Ragged John's Neverending Cup
129+
shared.NewSimpleStatActive(16022) // Arcanite Dragonling
130+
shared.NewSimpleStatActive(17067) // Ancient Cornerstone Grimoire
131+
shared.NewSimpleStatActive(17690) // Frostwolf Insignia Rank 1
132+
shared.NewSimpleStatActive(17691) // Stormpike Insignia Rank 1
133+
shared.NewSimpleStatActive(17759) // Mark of Resolution
134+
shared.NewSimpleStatActive(17900) // Stormpike Insignia Rank 2
135+
shared.NewSimpleStatActive(17901) // Stormpike Insignia Rank 3
136+
shared.NewSimpleStatActive(17902) // Stormpike Insignia Rank 4
137+
shared.NewSimpleStatActive(17903) // Stormpike Insignia Rank 5
138+
shared.NewSimpleStatActive(17905) // Frostwolf Insignia Rank 2
139+
shared.NewSimpleStatActive(17906) // Frostwolf Insignia Rank 3
140+
shared.NewSimpleStatActive(17907) // Frostwolf Insignia Rank 4
141+
shared.NewSimpleStatActive(17908) // Frostwolf Insignia Rank 5
142+
shared.NewSimpleStatActive(18639) // Ultra-Flash Shadow Reflector
143+
shared.NewSimpleStatActive(19336) // Arcane Infused Gem
144+
shared.NewSimpleStatActive(19340) // Rune of Metamorphosis
145+
shared.NewSimpleStatActive(19341) // Lifegiving Gem
146+
shared.NewSimpleStatActive(19342) // Venomous Totem
147+
shared.NewSimpleStatActive(19930) // Mar'li's Eye
148+
shared.NewSimpleStatActive(19948) // Zandalarian Hero Badge
149+
shared.NewSimpleStatActive(19949) // Zandalarian Hero Medallion
150+
shared.NewSimpleStatActive(19950) // Zandalarian Hero Charm
151+
shared.NewSimpleStatActive(19951) // Gri'lek's Charm of Might
152+
shared.NewSimpleStatActive(19953) // Renataki's Charm of Beasts
153+
shared.NewSimpleStatActive(19954) // Renataki's Charm of Trickery
154+
shared.NewSimpleStatActive(19956) // Wushoolay's Charm of Spirits
155+
shared.NewSimpleStatActive(19979) // Hook of the Master Angler
156+
shared.NewSimpleStatActive(20071) // Talisman of Arathor
157+
shared.NewSimpleStatActive(20072) // Defiler's Talisman
158+
shared.NewSimpleStatActive(21181) // Grace of Earth
159+
shared.NewSimpleStatActive(21326) // Defender of the Timbermaw
160+
shared.NewSimpleStatActive(21488) // Fetish of Chitinous Spikes
161+
shared.NewSimpleStatActive(21579) // Vanquished Tentacle of C'Thun
162+
shared.NewSimpleStatActive(21625) // Scarab Brooch
163+
shared.NewSimpleStatActive(21647) // Fetish of the Sand Reaver
164+
shared.NewSimpleStatActive(21670) // Badge of the Swarmguard
165+
shared.NewSimpleStatActive(21685) // Petrified Scarab
166+
shared.NewSimpleStatActive(21784) // Figurine - Black Diamond Crab
167+
shared.NewSimpleStatActive(21789) // Figurine - Dark Iron Scorpid
168+
shared.NewSimpleStatActive(21891) // Shard of the Fallen Star
169+
shared.NewSimpleStatActive(23001) // Eye of Diminution
170+
shared.NewSimpleStatActive(23027) // Warmth of Forgiveness
171+
shared.NewSimpleStatActive(23040) // Glyph of Deflection
172+
shared.NewSimpleStatActive(23558) // The Burrower's Shell
73173
shared.NewSimpleStatActive(23564) // Twisting Nether Chain Shirt
74174
shared.NewSimpleStatActive(23565) // Embrace of the Twisting Nether
175+
shared.NewSimpleStatActive(23570) // Jom Gabbar
176+
shared.NewSimpleStatActive(23587) // Mirren's Drinking Hat
75177
shared.NewSimpleStatActive(23763) // Hyper-Vision Goggles
76178
shared.NewSimpleStatActive(23824) // Rocket Boots Xtreme
77179
shared.NewSimpleStatActive(23825) // Nigh Invulnerability Belt
180+
shared.NewSimpleStatActive(23835) // Gnomish Poultryizer
181+
shared.NewSimpleStatActive(23836) // Goblin Rocket Launcher
78182
shared.NewSimpleStatActive(24092) // Pendant of Frozen Flame
79183
shared.NewSimpleStatActive(24093) // Pendant of Thawing
80184
shared.NewSimpleStatActive(24095) // Pendant of Withering
@@ -87,9 +191,17 @@ func RegisterAllOnUseCds() {
87191
shared.NewSimpleStatActive(24121) // Chain of the Twilight Owl
88192
shared.NewSimpleStatActive(24124) // Figurine - Felsteel Boar
89193
shared.NewSimpleStatActive(24127) // Figurine - Talasite Owl
194+
shared.NewSimpleStatActive(24376) // Runed Fungalcap
195+
shared.NewSimpleStatActive(24390) // Auslese's Light Channeler
196+
shared.NewSimpleStatActive(24551) // Talisman of the Horde
197+
shared.NewSimpleStatActive(25786) // Hypnotist's Watch
198+
shared.NewSimpleStatActive(25827) // Muck-Covered Drape
199+
shared.NewSimpleStatActive(25829) // Talisman of the Alliance
200+
shared.NewSimpleStatActive(25996) // Emblem of Perseverance
90201
shared.NewSimpleStatActive(27529) // Figurine of the Colossus
91202
shared.NewSimpleStatActive(27770) // Argussian Compass
92203
shared.NewSimpleStatActive(27900) // Jewel of Charismatic Mystique
204+
shared.NewSimpleStatActive(28042) // Regal Protectorate
93205
shared.NewSimpleStatActive(28111) // Everlasting Underspore Frond
94206
shared.NewSimpleStatActive(28121) // Icon of Unyielding Courage
95207
shared.NewSimpleStatActive(28234) // Medallion of the Alliance
@@ -119,6 +231,8 @@ func RegisterAllOnUseCds() {
119231
shared.NewSimpleStatActive(30349) // Medallion of the Alliance
120232
shared.NewSimpleStatActive(30350) // Medallion of the Alliance
121233
shared.NewSimpleStatActive(30351) // Medallion of the Alliance
234+
shared.NewSimpleStatActive(30542) // Dimensional Ripper - Area 52
235+
shared.NewSimpleStatActive(30544) // Ultrasafe Transporter: Toshley's Station
122236
shared.NewSimpleStatActive(30620) // Spyglass of the Hidden Fleet
123237
shared.NewSimpleStatActive(30841) // Lower City Prayerbook
124238
shared.NewSimpleStatActive(30847) // X-52 Rocket Helmet
@@ -138,6 +252,9 @@ func RegisterAllOnUseCds() {
138252
shared.NewSimpleStatActive(32534) // Brooch of the Immortal King
139253
shared.NewSimpleStatActive(32538) // Skywitch's Drape
140254
shared.NewSimpleStatActive(32539) // Skyguard's Drape
255+
shared.NewSimpleStatActive(32694) // Overseer's Badge
256+
shared.NewSimpleStatActive(32695) // Captain's Badge
257+
shared.NewSimpleStatActive(32782) // Time-Lost Figurine
141258
shared.NewSimpleStatActive(32864) // Commander's Badge
142259
shared.NewSimpleStatActive(33808) // The Horseman's Helm
143260
shared.NewSimpleStatActive(33820) // Weather-Beaten Fishing Hat
@@ -157,6 +274,7 @@ func RegisterAllOnUseCds() {
157274
shared.NewSimpleStatActive(35183) // Wonderheal XT68 Shades
158275
shared.NewSimpleStatActive(35184) // Primal-Attuned Goggles
159276
shared.NewSimpleStatActive(35185) // Justicebringer 3000 Specs
277+
shared.NewSimpleStatActive(35275) // Orb of the Sin'dorei
160278
shared.NewSimpleStatActive(35514) // Frostscythe of Lord Ahune
161279
shared.NewSimpleStatActive(35581) // Rocket Boots Xtreme Lite
162280
shared.NewSimpleStatActive(35694) // Figurine - Khorium Boar

sim/core/constants.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
)
88

99
const CharacterLevel = 90
10-
const MinIlvl = 100
10+
const MinIlvl = 60
1111
const MaxIlvl = 600
1212
const MinUpgradeIlvl = 458
1313
const MaxChallengeModeIlvl = 463

tools/database/dbc/dbc.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"encoding/json"
55
"fmt"
66
"log"
7+
"strings"
78
"sync"
89
)
910

@@ -267,9 +268,11 @@ func (d *DBC) loadEnchants(filename string) error {
267268
}
268269
}
269270

270-
for i := range enchants {
271-
enchant := enchants[i]
272-
d.Enchants[enchant.EffectId] = enchant
271+
for i, ench := range enchants {
272+
if strings.Contains(ench.Name, "QASpell") {
273+
continue
274+
}
275+
d.Enchants[i] = ench
273276
}
274277
return nil
275278
}

tools/database/dbc/maps.go

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -36,71 +36,73 @@ func MapMainStatToStat(index int) (proto.Stat, bool) {
3636
}
3737
func MapBonusStatIndexToStat(index int) (proto.Stat, bool) {
3838
switch index {
39-
case 0: // Mana
39+
case ITEM_MOD_MANA: // Mana
4040
return proto.Stat_StatMana, true
41-
case 1: // Health
41+
case ITEM_MOD_HEALTH: // Health
4242
return proto.Stat_StatHealth, true
43-
case 7: // Stamina
43+
case ITEM_MOD_STAMINA: // Stamina
4444
return proto.Stat_StatStamina, true
45-
case 3: // Agility
45+
case ITEM_MOD_AGILITY: // Agility
4646
return proto.Stat_StatAgility, true
47-
case 4: // Strength
47+
case ITEM_MOD_STRENGTH: // Strength
4848
return proto.Stat_StatStrength, true
49-
case 5: // Intellect
49+
case ITEM_MOD_INTELLECT: // Intellect
5050
return proto.Stat_StatIntellect, true
51-
case 6: // Spirit
51+
case ITEM_MOD_SPIRIT: // Spirit
5252
return proto.Stat_StatSpirit, true
5353

54-
case 12:
54+
case ITEM_MOD_DEFENSE_SKILL_RATING:
5555
return proto.Stat_StatDefenseRating, true
56-
case 13:
56+
case ITEM_MOD_DODGE_RATING:
5757
return proto.Stat_StatDodgeRating, true
58-
case 14:
58+
case ITEM_MOD_PARRY_RATING:
5959
return proto.Stat_StatParryRating, true
60-
case 15:
60+
case ITEM_MOD_BLOCK_RATING:
6161
return proto.Stat_StatBlockRating, true
6262

6363
// Secondary ratings
64-
case 16, 17:
64+
case ITEM_MOD_HIT_MELEE_RATING, ITEM_MOD_HIT_RANGED_RATING:
6565
return proto.Stat_StatMeleeHitRating, true
66-
case 18:
66+
case ITEM_MOD_HIT_SPELL_RATING:
6767
return proto.Stat_StatSpellHitRating, true
68-
case 31:
68+
case ITEM_MOD_HIT_RATING:
6969
return proto.Stat_StatAllHitRating, true
70-
case 19, 20:
70+
case ITEM_MOD_CRIT_MELEE_RATING, ITEM_MOD_CRIT_RANGED_RATING:
7171
return proto.Stat_StatMeleeCritRating, true
72-
case 21:
72+
case ITEM_MOD_CRIT_SPELL_RATING:
7373
return proto.Stat_StatSpellCritRating, true
74-
case 32:
74+
case ITEM_MOD_CRIT_RATING:
7575
return proto.Stat_StatAllCritRating, true
76-
case 28, 29:
76+
case ITEM_MOD_HASTE_MELEE_RATING, ITEM_MOD_HASTE_RANGED_RATING:
7777
return proto.Stat_StatMeleeHasteRating, true
78-
case 30:
78+
case ITEM_MOD_HASTE_SPELL_RATING:
7979
return proto.Stat_StatSpellHasteRating, true
80-
case 36:
80+
case ITEM_MOD_HASTE_RATING:
8181
return proto.Stat_StatAllHasteRating, true
82-
case 37:
82+
case ITEM_MOD_EXPERTISE_RATING:
8383
return proto.Stat_StatExpertiseRating, true
84+
case ITEM_MOD_ARMOR_PENETRATION_RATING:
85+
return proto.Stat_StatArmorPenetration, true
8486

85-
case 38: // AttackPower
87+
case ITEM_MOD_ATTACK_POWER: // AttackPower
8688
return proto.Stat_StatAttackPower, true
87-
case 39: // RangedAttackPower
89+
case ITEM_MOD_RANGED_ATTACK_POWER: // RangedAttackPower
8890
return proto.Stat_StatRangedAttackPower, true
89-
case 40:
91+
case ITEM_MOD_FERAL_ATTACK_POWER:
9092
return proto.Stat_StatFeralAttackPower, true
91-
case 41:
93+
case ITEM_MOD_SPELL_HEALING_DONE:
9294
return proto.Stat_StatHealingPower, true
93-
case 42:
95+
case ITEM_MOD_SPELL_DAMAGE_DONE:
9496
return proto.Stat_StatSpellDamage, true
95-
case 45:
97+
case ITEM_MOD_SPELL_POWER:
9698
return proto.Stat_StatSpellPower, true
9799
case 50: // ExtraArmor maps to BonusArmor (green armor)
98100
return proto.Stat_StatBonusArmor, true
99-
case 43: // ManaRegeneration
101+
case ITEM_MOD_MANA_REGENERATION: // ManaRegeneration
100102
return proto.Stat_StatMP5, true
101-
case 47:
103+
case ITEM_MOD_SPELL_PENETRATION:
102104
return proto.Stat_StatSpellPenetration, true
103-
case 48:
105+
case ITEM_MOD_BLOCK_VALUE:
104106
return proto.Stat_StatBlockValue, true
105107
default:
106108
return 0, false

tools/database/gen_db/main.go

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -304,15 +304,15 @@ func main() {
304304
// item.Sources = database.InferFlexibleRaidItemSource(item)
305305
// }
306306

307-
// for _, source := range item.Sources {
308-
// if crafted := source.GetCrafted(); crafted != nil {
309-
// craftedSpellIds = append(craftedSpellIds, crafted.SpellId)
310-
// }
311-
// // Add Eye Of The Black Prince gem socket to Throne of Thunder weapons.
312-
// if drop := source.GetDrop(); drop != nil && (item.Type == proto.ItemType_ItemTypeWeapon || item.Type == proto.ItemType_ItemTypeRanged) && (item.WeaponType != proto.WeaponType_WeaponTypeOffHand && item.WeaponType != proto.WeaponType_WeaponTypeShield) && drop.ZoneId == 6622 {
313-
// item.GemSockets = append(item.GemSockets, proto.GemColor_GemColorPrismatic)
314-
// }
315-
// }
307+
for _, source := range item.Sources {
308+
if crafted := source.GetCrafted(); crafted != nil {
309+
craftedSpellIds = append(craftedSpellIds, crafted.SpellId)
310+
}
311+
// Add Eye Of The Black Prince gem socket to Throne of Thunder weapons.
312+
if drop := source.GetDrop(); drop != nil && (item.Type == proto.ItemType_ItemTypeWeapon || item.Type == proto.ItemType_ItemTypeRanged) && (item.WeaponType != proto.WeaponType_WeaponTypeOffHand && item.WeaponType != proto.WeaponType_WeaponTypeShield) && drop.ZoneId == 6622 {
313+
item.GemSockets = append(item.GemSockets, proto.GemColor_GemColorPrismatic)
314+
}
315+
}
316316

317317
if item.Phase < 2 {
318318
item.Phase = database.InferPhase(item)
@@ -598,11 +598,6 @@ func simmableGemFilter(_ int32, gem *proto.UIGem) bool {
598598
return true
599599
}
600600

601-
// Arbitrary to filter out old gems
602-
if gem.Id < 46000 {
603-
return false
604-
}
605-
606601
return gem.Quality >= proto.ItemQuality_ItemQualityUncommon
607602
}
608603

0 commit comments

Comments
 (0)