ItemStats/Filters

* do not use NULL on item stats as it prevents searching for an amount of 0 (except for stats that certain items just cant have)
 * fix stats from spells granting spell power and spell healing separately
 * define and use some item subclasses
This commit is contained in:
Sarjuuk
2024-09-10 14:44:11 +02:00
parent a62f24b97c
commit c1eecb4c22
6 changed files with 265 additions and 76 deletions

View File

@@ -1104,7 +1104,7 @@ DROP TABLE IF EXISTS `aowow_item_stats`;
CREATE TABLE `aowow_item_stats` (
`type` smallint(5) unsigned NOT NULL,
`typeId` mediumint(8) NOT NULL,
`nsockets` tinyint(3) unsigned NULL,
`nsockets` tinyint(3) unsigned NOT NULL DEFAULT 0,
`dps` float(8,2) NULL,
`damagetype` tinyint(4) NULL,
`dmgmin1` mediumint(5) unsigned NULL,
@@ -1118,71 +1118,71 @@ CREATE TABLE `aowow_item_stats` (
`rgddmgmin` mediumint(5) unsigned NULL,
`rgddmgmax` mediumint(5) unsigned NULL,
`rgdspeed` float(8,2) NULL,
`dmg` float(8,2) NULL,
`mana` mediumint(6) NULL,
`health` mediumint(6) NULL,
`agi` mediumint(6) NULL,
`str` mediumint(6) NULL,
`int` mediumint(6) NULL,
`spi` mediumint(6) NULL,
`sta` mediumint(6) NULL,
`energy` mediumint(6) NULL,
`rage` mediumint(6) NULL,
`focus` mediumint(6) NULL,
`runic` mediumint(6) NULL,
`defrtng` mediumint(6) NULL,
`dodgertng` mediumint(6) NULL,
`parryrtng` mediumint(6) NULL,
`blockrtng` mediumint(6) NULL,
`mlehitrtng` mediumint(6) NULL,
`rgdhitrtng` mediumint(6) NULL,
`splhitrtng` mediumint(6) NULL,
`mlecritstrkrtng` mediumint(6) NULL,
`rgdcritstrkrtng` mediumint(6) NULL,
`splcritstrkrtng` mediumint(6) NULL,
`_mlehitrtng` mediumint(6) NULL,
`_rgdhitrtng` mediumint(6) NULL,
`_splhitrtng` mediumint(6) NULL,
`_mlecritstrkrtng` mediumint(6) NULL,
`_rgdcritstrkrtng` mediumint(6) NULL,
`_splcritstrkrtng` mediumint(6) NULL,
`mlehastertng` mediumint(6) NULL,
`rgdhastertng` mediumint(6) NULL,
`splhastertng` mediumint(6) NULL,
`hitrtng` mediumint(6) NULL,
`critstrkrtng` mediumint(6) NULL,
`_hitrtng` mediumint(6) NULL,
`_critstrkrtng` mediumint(6) NULL,
`resirtng` mediumint(6) NULL,
`hastertng` mediumint(6) NULL,
`exprtng` mediumint(6) NULL,
`atkpwr` mediumint(6) NULL,
`mleatkpwr` mediumint(6) NULL,
`rgdatkpwr` mediumint(6) NULL,
`feratkpwr` mediumint(6) NULL,
`splheal` mediumint(6) NULL,
`spldmg` mediumint(6) NULL,
`manargn` mediumint(6) NULL,
`armorpenrtng` mediumint(6) NULL,
`splpwr` mediumint(6) NULL,
`healthrgn` mediumint(6) NULL,
`splpen` mediumint(6) NULL,
`block` mediumint(6) NULL,
`mastrtng` mediumint(6) NULL,
`armor` mediumint(6) NULL,
`dmg` float(8,2) NOT NULL DEFAULT 0,
`mana` mediumint(6) NOT NULL DEFAULT 0,
`health` mediumint(6) NOT NULL DEFAULT 0,
`agi` mediumint(6) NOT NULL DEFAULT 0,
`str` mediumint(6) NOT NULL DEFAULT 0,
`int` mediumint(6) NOT NULL DEFAULT 0,
`spi` mediumint(6) NOT NULL DEFAULT 0,
`sta` mediumint(6) NOT NULL DEFAULT 0,
`energy` mediumint(6) NOT NULL DEFAULT 0,
`rage` mediumint(6) NOT NULL DEFAULT 0,
`focus` mediumint(6) NOT NULL DEFAULT 0,
`runic` mediumint(6) NOT NULL DEFAULT 0,
`defrtng` mediumint(6) NOT NULL DEFAULT 0,
`dodgertng` mediumint(6) NOT NULL DEFAULT 0,
`parryrtng` mediumint(6) NOT NULL DEFAULT 0,
`blockrtng` mediumint(6) NOT NULL DEFAULT 0,
`mlehitrtng` mediumint(6) NOT NULL DEFAULT 0,
`rgdhitrtng` mediumint(6) NOT NULL DEFAULT 0,
`splhitrtng` mediumint(6) NOT NULL DEFAULT 0,
`mlecritstrkrtng` mediumint(6) NOT NULL DEFAULT 0,
`rgdcritstrkrtng` mediumint(6) NOT NULL DEFAULT 0,
`splcritstrkrtng` mediumint(6) NOT NULL DEFAULT 0,
`_mlehitrtng` mediumint(6) NOT NULL DEFAULT 0,
`_rgdhitrtng` mediumint(6) NOT NULL DEFAULT 0,
`_splhitrtng` mediumint(6) NOT NULL DEFAULT 0,
`_mlecritstrkrtng` mediumint(6) NOT NULL DEFAULT 0,
`_rgdcritstrkrtng` mediumint(6) NOT NULL DEFAULT 0,
`_splcritstrkrtng` mediumint(6) NOT NULL DEFAULT 0,
`mlehastertng` mediumint(6) NOT NULL DEFAULT 0,
`rgdhastertng` mediumint(6) NOT NULL DEFAULT 0,
`splhastertng` mediumint(6) NOT NULL DEFAULT 0,
`hitrtng` mediumint(6) NOT NULL DEFAULT 0,
`critstrkrtng` mediumint(6) NOT NULL DEFAULT 0,
`_hitrtng` mediumint(6) NOT NULL DEFAULT 0,
`_critstrkrtng` mediumint(6) NOT NULL DEFAULT 0,
`resirtng` mediumint(6) NOT NULL DEFAULT 0,
`hastertng` mediumint(6) NOT NULL DEFAULT 0,
`exprtng` mediumint(6) NOT NULL DEFAULT 0,
`atkpwr` mediumint(6) NOT NULL DEFAULT 0,
`mleatkpwr` mediumint(6) NOT NULL DEFAULT 0,
`rgdatkpwr` mediumint(6) NOT NULL DEFAULT 0,
`feratkpwr` mediumint(6) NOT NULL DEFAULT 0,
`splheal` mediumint(6) NOT NULL DEFAULT 0,
`spldmg` mediumint(6) NOT NULL DEFAULT 0,
`manargn` mediumint(6) NOT NULL DEFAULT 0,
`armorpenrtng` mediumint(6) NOT NULL DEFAULT 0,
`splpwr` mediumint(6) NOT NULL DEFAULT 0,
`healthrgn` mediumint(6) NOT NULL DEFAULT 0,
`splpen` mediumint(6) NOT NULL DEFAULT 0,
`block` mediumint(6) NOT NULL DEFAULT 0,
`mastrtng` mediumint(6) NOT NULL DEFAULT 0,
`armor` mediumint(6) NOT NULL DEFAULT 0,
`armorbonus` mediumint(6) NULL,
`firres` mediumint(6) NULL,
`frores` mediumint(6) NULL,
`holres` mediumint(6) NULL,
`shares` mediumint(6) NULL,
`natres` mediumint(6) NULL,
`arcres` mediumint(6) NULL,
`firsplpwr` mediumint(6) NULL,
`frosplpwr` mediumint(6) NULL,
`holsplpwr` mediumint(6) NULL,
`shasplpwr` mediumint(6) NULL,
`natsplpwr` mediumint(6) NULL,
`arcsplpwr` mediumint(6) NULL,
`firres` mediumint(6) NOT NULL DEFAULT 0,
`frores` mediumint(6) NOT NULL DEFAULT 0,
`holres` mediumint(6) NOT NULL DEFAULT 0,
`shares` mediumint(6) NOT NULL DEFAULT 0,
`natres` mediumint(6) NOT NULL DEFAULT 0,
`arcres` mediumint(6) NOT NULL DEFAULT 0,
`firsplpwr` mediumint(6) NOT NULL DEFAULT 0,
`frosplpwr` mediumint(6) NOT NULL DEFAULT 0,
`holsplpwr` mediumint(6) NOT NULL DEFAULT 0,
`shasplpwr` mediumint(6) NOT NULL DEFAULT 0,
`natsplpwr` mediumint(6) NOT NULL DEFAULT 0,
`arcsplpwr` mediumint(6) NOT NULL DEFAULT 0,
PRIMARY KEY (`type`,`typeId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;