Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified assets/database/db.bin
Binary file not shown.
4,818 changes: 4,796 additions & 22 deletions assets/database/db.json

Large diffs are not rendered by default.

Binary file modified assets/database/leftover_db.bin
Binary file not shown.
384 changes: 152 additions & 232 deletions assets/database/leftover_db.json

Large diffs are not rendered by default.

426 changes: 261 additions & 165 deletions assets/enchants/descriptions.json

Large diffs are not rendered by default.

118 changes: 118 additions & 0 deletions sim/common/tbc/stat_bonus_cds_auto_gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,25 @@ func RegisterAllOnUseCds() {
// Agility
shared.NewSimpleStatActive(32658) // Badge of Tenacity

// ArcaneResistance
shared.NewSimpleStatActive(15867) // Prismcharm
shared.NewSimpleStatActive(23042) // Loatheb's Reflection

// Armor
shared.NewSimpleStatActive(19345) // Aegis of Preservation
shared.NewSimpleStatActive(27891) // Adamantine Figurine
shared.NewSimpleStatActive(33830) // Ancient Aqir Artifact

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

// DodgeRating
shared.NewSimpleStatActive(24125) // Figurine - Dawnstone Crab
shared.NewSimpleStatActive(25787) // Charm of Alacrity
shared.NewSimpleStatActive(28528) // Moroes' Lucky Pocket Watch
shared.NewSimpleStatActive(35693) // Figurine - Empyrean Tortoise

// FireResistance
shared.NewSimpleStatActive(13164) // Heart of the Scale

// Health
shared.NewSimpleStatActive(33832) // Battlemaster's Determination
shared.NewSimpleStatActive(34049) // Battlemaster's Audacity
Expand All @@ -44,15 +59,42 @@ func RegisterAllOnUseCds() {
shared.NewSimpleStatActive(24114) // Braided Eternium Chain

// MeleeHasteRating
shared.NewSimpleStatActive(22954) // Kiss of the Spider
shared.NewSimpleStatActive(28288) // Abacus of Violent Odds

// SpellCritRating
shared.NewSimpleStatActive(19952) // Gri'lek's Charm of Valor
shared.NewSimpleStatActive(19957) // Hazza'rah's Charm of Destruction

// SpellHasteRating
shared.NewSimpleStatActive(19339) // Mind Quickening Gem
shared.NewSimpleStatActive(19343) // Scrolls of Blinding Light
shared.NewSimpleStatActive(19955) // Wushoolay's Charm of Nature
shared.NewSimpleStatActive(19958) // Hazza'rah's Charm of Healing
shared.NewSimpleStatActive(32483) // The Skull of Gul'dan

// SpellHitRating
shared.NewSimpleStatActive(19947) // Nat Pagle's Broken Reel

// SpellPower
shared.NewSimpleStatActive(18820) // Talisman of Ephemeral Power
shared.NewSimpleStatActive(19337) // The Black Book
shared.NewSimpleStatActive(19344) // Natural Alignment Crystal
shared.NewSimpleStatActive(19959) // Hazza'rah's Charm of Magic
shared.NewSimpleStatActive(20636) // Hibernation Crystal
shared.NewSimpleStatActive(21473) // Eye of Moam
shared.NewSimpleStatActive(22268) // Draconic Infused Emblem
shared.NewSimpleStatActive(22678) // Talisman of Ascendance
shared.NewSimpleStatActive(23046) // The Restrained Essence of Sapphiron
shared.NewSimpleStatActive(23047) // Eye of the Dead
shared.NewSimpleStatActive(24126) // Figurine - Living Ruby Serpent
shared.NewSimpleStatActive(25619) // Glowing Crystal Insignia
shared.NewSimpleStatActive(25620) // Ancient Crystal Talisman
shared.NewSimpleStatActive(25634) // Oshu'gun Relic
shared.NewSimpleStatActive(25936) // Terokkar Tablet of Vim
shared.NewSimpleStatActive(25995) // Star of Sha'naar
shared.NewSimpleStatActive(27828) // Warp-Scarab Brooch
shared.NewSimpleStatActive(28040) // Vengeance of the Illidari
shared.NewSimpleStatActive(28223) // Arcanist's Stone
shared.NewSimpleStatActive(29132) // Scryer's Bloodgem
shared.NewSimpleStatActive(29179) // Xi'ri's Gift
Expand All @@ -70,11 +112,73 @@ func RegisterAllOnUseCds() {
shared.NewSimpleStatActive(28370) // Bangle of Endless Blessings

// Strength
shared.NewSimpleStatActive(10455) // Chained Essence of Eranikus
shared.NewSimpleStatActive(12185) // Bloodsail Admiral's Hat
shared.NewSimpleStatActive(13143) // Mark of the Dragon Lord
shared.NewSimpleStatActive(13171) // Smokey's Lighter
shared.NewSimpleStatActive(13213) // Smolderweb's Eye
shared.NewSimpleStatActive(13353) // Book of the Dead
shared.NewSimpleStatActive(13382) // Cannonball Runner
shared.NewSimpleStatActive(13515) // Ramstein's Lightning Bolts
shared.NewSimpleStatActive(13937) // Headmaster's Charge
shared.NewSimpleStatActive(14022) // Barov Peasant Caller
shared.NewSimpleStatActive(14023) // Barov Peasant Caller
shared.NewSimpleStatActive(14152) // Robe of the Archmage
shared.NewSimpleStatActive(14153) // Robe of the Void
shared.NewSimpleStatActive(15873) // Ragged John's Neverending Cup
shared.NewSimpleStatActive(16022) // Arcanite Dragonling
shared.NewSimpleStatActive(17067) // Ancient Cornerstone Grimoire
shared.NewSimpleStatActive(17690) // Frostwolf Insignia Rank 1
shared.NewSimpleStatActive(17691) // Stormpike Insignia Rank 1
shared.NewSimpleStatActive(17759) // Mark of Resolution
shared.NewSimpleStatActive(17900) // Stormpike Insignia Rank 2
shared.NewSimpleStatActive(17901) // Stormpike Insignia Rank 3
shared.NewSimpleStatActive(17902) // Stormpike Insignia Rank 4
shared.NewSimpleStatActive(17903) // Stormpike Insignia Rank 5
shared.NewSimpleStatActive(17905) // Frostwolf Insignia Rank 2
shared.NewSimpleStatActive(17906) // Frostwolf Insignia Rank 3
shared.NewSimpleStatActive(17907) // Frostwolf Insignia Rank 4
shared.NewSimpleStatActive(17908) // Frostwolf Insignia Rank 5
shared.NewSimpleStatActive(18639) // Ultra-Flash Shadow Reflector
shared.NewSimpleStatActive(19336) // Arcane Infused Gem
shared.NewSimpleStatActive(19340) // Rune of Metamorphosis
shared.NewSimpleStatActive(19341) // Lifegiving Gem
shared.NewSimpleStatActive(19342) // Venomous Totem
shared.NewSimpleStatActive(19930) // Mar'li's Eye
shared.NewSimpleStatActive(19948) // Zandalarian Hero Badge
shared.NewSimpleStatActive(19949) // Zandalarian Hero Medallion
shared.NewSimpleStatActive(19950) // Zandalarian Hero Charm
shared.NewSimpleStatActive(19951) // Gri'lek's Charm of Might
shared.NewSimpleStatActive(19953) // Renataki's Charm of Beasts
shared.NewSimpleStatActive(19954) // Renataki's Charm of Trickery
shared.NewSimpleStatActive(19956) // Wushoolay's Charm of Spirits
shared.NewSimpleStatActive(19979) // Hook of the Master Angler
shared.NewSimpleStatActive(20071) // Talisman of Arathor
shared.NewSimpleStatActive(20072) // Defiler's Talisman
shared.NewSimpleStatActive(21181) // Grace of Earth
shared.NewSimpleStatActive(21326) // Defender of the Timbermaw
shared.NewSimpleStatActive(21488) // Fetish of Chitinous Spikes
shared.NewSimpleStatActive(21579) // Vanquished Tentacle of C'Thun
shared.NewSimpleStatActive(21625) // Scarab Brooch
shared.NewSimpleStatActive(21647) // Fetish of the Sand Reaver
shared.NewSimpleStatActive(21670) // Badge of the Swarmguard
shared.NewSimpleStatActive(21685) // Petrified Scarab
shared.NewSimpleStatActive(21784) // Figurine - Black Diamond Crab
shared.NewSimpleStatActive(21789) // Figurine - Dark Iron Scorpid
shared.NewSimpleStatActive(21891) // Shard of the Fallen Star
shared.NewSimpleStatActive(23001) // Eye of Diminution
shared.NewSimpleStatActive(23027) // Warmth of Forgiveness
shared.NewSimpleStatActive(23040) // Glyph of Deflection
shared.NewSimpleStatActive(23558) // The Burrower's Shell
shared.NewSimpleStatActive(23564) // Twisting Nether Chain Shirt
shared.NewSimpleStatActive(23565) // Embrace of the Twisting Nether
shared.NewSimpleStatActive(23570) // Jom Gabbar
shared.NewSimpleStatActive(23587) // Mirren's Drinking Hat
shared.NewSimpleStatActive(23763) // Hyper-Vision Goggles
shared.NewSimpleStatActive(23824) // Rocket Boots Xtreme
shared.NewSimpleStatActive(23825) // Nigh Invulnerability Belt
shared.NewSimpleStatActive(23835) // Gnomish Poultryizer
shared.NewSimpleStatActive(23836) // Goblin Rocket Launcher
shared.NewSimpleStatActive(24092) // Pendant of Frozen Flame
shared.NewSimpleStatActive(24093) // Pendant of Thawing
shared.NewSimpleStatActive(24095) // Pendant of Withering
Expand All @@ -87,9 +191,17 @@ func RegisterAllOnUseCds() {
shared.NewSimpleStatActive(24121) // Chain of the Twilight Owl
shared.NewSimpleStatActive(24124) // Figurine - Felsteel Boar
shared.NewSimpleStatActive(24127) // Figurine - Talasite Owl
shared.NewSimpleStatActive(24376) // Runed Fungalcap
shared.NewSimpleStatActive(24390) // Auslese's Light Channeler
shared.NewSimpleStatActive(24551) // Talisman of the Horde
shared.NewSimpleStatActive(25786) // Hypnotist's Watch
shared.NewSimpleStatActive(25827) // Muck-Covered Drape
shared.NewSimpleStatActive(25829) // Talisman of the Alliance
shared.NewSimpleStatActive(25996) // Emblem of Perseverance
shared.NewSimpleStatActive(27529) // Figurine of the Colossus
shared.NewSimpleStatActive(27770) // Argussian Compass
shared.NewSimpleStatActive(27900) // Jewel of Charismatic Mystique
shared.NewSimpleStatActive(28042) // Regal Protectorate
shared.NewSimpleStatActive(28111) // Everlasting Underspore Frond
shared.NewSimpleStatActive(28121) // Icon of Unyielding Courage
shared.NewSimpleStatActive(28234) // Medallion of the Alliance
Expand Down Expand Up @@ -119,6 +231,8 @@ func RegisterAllOnUseCds() {
shared.NewSimpleStatActive(30349) // Medallion of the Alliance
shared.NewSimpleStatActive(30350) // Medallion of the Alliance
shared.NewSimpleStatActive(30351) // Medallion of the Alliance
shared.NewSimpleStatActive(30542) // Dimensional Ripper - Area 52
shared.NewSimpleStatActive(30544) // Ultrasafe Transporter: Toshley's Station
shared.NewSimpleStatActive(30620) // Spyglass of the Hidden Fleet
shared.NewSimpleStatActive(30841) // Lower City Prayerbook
shared.NewSimpleStatActive(30847) // X-52 Rocket Helmet
Expand All @@ -138,6 +252,9 @@ func RegisterAllOnUseCds() {
shared.NewSimpleStatActive(32534) // Brooch of the Immortal King
shared.NewSimpleStatActive(32538) // Skywitch's Drape
shared.NewSimpleStatActive(32539) // Skyguard's Drape
shared.NewSimpleStatActive(32694) // Overseer's Badge
shared.NewSimpleStatActive(32695) // Captain's Badge
shared.NewSimpleStatActive(32782) // Time-Lost Figurine
shared.NewSimpleStatActive(32864) // Commander's Badge
shared.NewSimpleStatActive(33808) // The Horseman's Helm
shared.NewSimpleStatActive(33820) // Weather-Beaten Fishing Hat
Expand All @@ -157,6 +274,7 @@ func RegisterAllOnUseCds() {
shared.NewSimpleStatActive(35183) // Wonderheal XT68 Shades
shared.NewSimpleStatActive(35184) // Primal-Attuned Goggles
shared.NewSimpleStatActive(35185) // Justicebringer 3000 Specs
shared.NewSimpleStatActive(35275) // Orb of the Sin'dorei
shared.NewSimpleStatActive(35514) // Frostscythe of Lord Ahune
shared.NewSimpleStatActive(35581) // Rocket Boots Xtreme Lite
shared.NewSimpleStatActive(35694) // Figurine - Khorium Boar
Expand Down
2 changes: 1 addition & 1 deletion sim/core/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
)

const CharacterLevel = 90
const MinIlvl = 100
const MinIlvl = 60
const MaxIlvl = 600
const MinUpgradeIlvl = 458
const MaxChallengeModeIlvl = 463
Expand Down
9 changes: 6 additions & 3 deletions tools/database/dbc/dbc.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"encoding/json"
"fmt"
"log"
"strings"
"sync"
)

Expand Down Expand Up @@ -267,9 +268,11 @@ func (d *DBC) loadEnchants(filename string) error {
}
}

for i := range enchants {
enchant := enchants[i]
d.Enchants[enchant.EffectId] = enchant
for i, ench := range enchants {
if strings.Contains(ench.Name, "QASpell") {
continue
}
d.Enchants[i] = ench
}
return nil
}
Expand Down
62 changes: 32 additions & 30 deletions tools/database/dbc/maps.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,71 +36,73 @@ func MapMainStatToStat(index int) (proto.Stat, bool) {
}
func MapBonusStatIndexToStat(index int) (proto.Stat, bool) {
switch index {
case 0: // Mana
case ITEM_MOD_MANA: // Mana
return proto.Stat_StatMana, true
case 1: // Health
case ITEM_MOD_HEALTH: // Health
return proto.Stat_StatHealth, true
case 7: // Stamina
case ITEM_MOD_STAMINA: // Stamina
return proto.Stat_StatStamina, true
case 3: // Agility
case ITEM_MOD_AGILITY: // Agility
return proto.Stat_StatAgility, true
case 4: // Strength
case ITEM_MOD_STRENGTH: // Strength
return proto.Stat_StatStrength, true
case 5: // Intellect
case ITEM_MOD_INTELLECT: // Intellect
return proto.Stat_StatIntellect, true
case 6: // Spirit
case ITEM_MOD_SPIRIT: // Spirit
return proto.Stat_StatSpirit, true

case 12:
case ITEM_MOD_DEFENSE_SKILL_RATING:
return proto.Stat_StatDefenseRating, true
case 13:
case ITEM_MOD_DODGE_RATING:
return proto.Stat_StatDodgeRating, true
case 14:
case ITEM_MOD_PARRY_RATING:
return proto.Stat_StatParryRating, true
case 15:
case ITEM_MOD_BLOCK_RATING:
return proto.Stat_StatBlockRating, true

// Secondary ratings
case 16, 17:
case ITEM_MOD_HIT_MELEE_RATING, ITEM_MOD_HIT_RANGED_RATING:
return proto.Stat_StatMeleeHitRating, true
case 18:
case ITEM_MOD_HIT_SPELL_RATING:
return proto.Stat_StatSpellHitRating, true
case 31:
case ITEM_MOD_HIT_RATING:
return proto.Stat_StatAllHitRating, true
case 19, 20:
case ITEM_MOD_CRIT_MELEE_RATING, ITEM_MOD_CRIT_RANGED_RATING:
return proto.Stat_StatMeleeCritRating, true
case 21:
case ITEM_MOD_CRIT_SPELL_RATING:
return proto.Stat_StatSpellCritRating, true
case 32:
case ITEM_MOD_CRIT_RATING:
return proto.Stat_StatAllCritRating, true
case 28, 29:
case ITEM_MOD_HASTE_MELEE_RATING, ITEM_MOD_HASTE_RANGED_RATING:
return proto.Stat_StatMeleeHasteRating, true
case 30:
case ITEM_MOD_HASTE_SPELL_RATING:
return proto.Stat_StatSpellHasteRating, true
case 36:
case ITEM_MOD_HASTE_RATING:
return proto.Stat_StatAllHasteRating, true
case 37:
case ITEM_MOD_EXPERTISE_RATING:
return proto.Stat_StatExpertiseRating, true
case ITEM_MOD_ARMOR_PENETRATION_RATING:
return proto.Stat_StatArmorPenetration, true

case 38: // AttackPower
case ITEM_MOD_ATTACK_POWER: // AttackPower
return proto.Stat_StatAttackPower, true
case 39: // RangedAttackPower
case ITEM_MOD_RANGED_ATTACK_POWER: // RangedAttackPower
return proto.Stat_StatRangedAttackPower, true
case 40:
case ITEM_MOD_FERAL_ATTACK_POWER:
return proto.Stat_StatFeralAttackPower, true
case 41:
case ITEM_MOD_SPELL_HEALING_DONE:
return proto.Stat_StatHealingPower, true
case 42:
case ITEM_MOD_SPELL_DAMAGE_DONE:
return proto.Stat_StatSpellDamage, true
case 45:
case ITEM_MOD_SPELL_POWER:
return proto.Stat_StatSpellPower, true
case 50: // ExtraArmor maps to BonusArmor (green armor)
return proto.Stat_StatBonusArmor, true
case 43: // ManaRegeneration
case ITEM_MOD_MANA_REGENERATION: // ManaRegeneration
return proto.Stat_StatMP5, true
case 47:
case ITEM_MOD_SPELL_PENETRATION:
return proto.Stat_StatSpellPenetration, true
case 48:
case ITEM_MOD_BLOCK_VALUE:
return proto.Stat_StatBlockValue, true
default:
return 0, false
Expand Down
23 changes: 9 additions & 14 deletions tools/database/gen_db/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -304,15 +304,15 @@ func main() {
// item.Sources = database.InferFlexibleRaidItemSource(item)
// }

// for _, source := range item.Sources {
// if crafted := source.GetCrafted(); crafted != nil {
// craftedSpellIds = append(craftedSpellIds, crafted.SpellId)
// }
// // Add Eye Of The Black Prince gem socket to Throne of Thunder weapons.
// 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 {
// item.GemSockets = append(item.GemSockets, proto.GemColor_GemColorPrismatic)
// }
// }
for _, source := range item.Sources {
if crafted := source.GetCrafted(); crafted != nil {
craftedSpellIds = append(craftedSpellIds, crafted.SpellId)
}
// Add Eye Of The Black Prince gem socket to Throne of Thunder weapons.
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 {
item.GemSockets = append(item.GemSockets, proto.GemColor_GemColorPrismatic)
}
}

if item.Phase < 2 {
item.Phase = database.InferPhase(item)
Expand Down Expand Up @@ -598,11 +598,6 @@ func simmableGemFilter(_ int32, gem *proto.UIGem) bool {
return true
}

// Arbitrary to filter out old gems
if gem.Id < 46000 {
return false
}

return gem.Quality >= proto.ItemQuality_ItemQualityUncommon
}

Expand Down
2 changes: 1 addition & 1 deletion tools/database/tables.go
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ func LoadAndWriteRawGems(dbHelper *DBHelper, inputsDir string) ([]dbc.Gem, error
FROM ItemSparse s
JOIN Item i ON s.ID = i.ID
JOIN GemProperties gp ON s.Gem_properties = gp.ID
JOIN SpellItemEnchantment sie ON i.ID = sie.Field_1_15_3_55112_012
JOIN SpellItemEnchantment sie ON gp.Enchant_ID = sie.ID
WHERE i.ClassID = 3`
items, err := LoadRows(dbHelper.db, query, ScanGemTable)
if err != nil {
Expand Down
Loading
Loading