Core/CharStats

* unify stat handling. If there are discrepancies left at least they are now centralized.
   - health should no longer pretend to be mana
   - stats are no longer capped to 32.7k points as items can have multiple of the same stat and handily exceed smallints
 * weight scale fixes:
   - "repair cost" is no longer a weight scale option. Why was it one in the first place? Also it wasn't even accessible before. (that was a bug)
   - "bonus armor" is now searchable and only applied to armor pieces
 * removed unused parsed stats from itemsets
This commit is contained in:
Sarjuuk
2024-04-02 23:06:09 +02:00
parent cb3c7d4ef0
commit d16b08bb29
21 changed files with 1140 additions and 875 deletions

View File

@@ -1103,88 +1103,88 @@ DROP TABLE IF EXISTS `aowow_item_stats`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `aowow_item_stats` (
`type` smallint unsigned NOT NULL,
`typeId` mediumint unsigned NOT NULL,
`nsockets` tinyint unsigned NOT NULL DEFAULT 0,
`dmgmin1` smallint unsigned NOT NULL DEFAULT 0,
`dmgmax1` smallint unsigned NOT NULL DEFAULT 0,
`speed` float(8,2) NOT NULL DEFAULT 0.00,
`dps` float(8,2) NOT NULL DEFAULT 0.00,
`mledmgmin` smallint unsigned NOT NULL DEFAULT 0,
`mledmgmax` smallint unsigned NOT NULL DEFAULT 0,
`mlespeed` float(8,2) NOT NULL DEFAULT 0.00,
`mledps` float(8,2) NOT NULL DEFAULT 0.00,
`rgddmgmin` smallint unsigned NOT NULL DEFAULT 0,
`rgddmgmax` smallint unsigned NOT NULL DEFAULT 0,
`rgdspeed` float(8,2) NOT NULL DEFAULT 0.00,
`rgddps` float(8,2) NOT NULL DEFAULT 0.00,
`dmg` float(8,2) NOT NULL DEFAULT 0.00,
`damagetype` tinyint NOT NULL DEFAULT 0,
`mana` mediumint NOT NULL DEFAULT 0,
`health` mediumint NOT NULL DEFAULT 0,
`agi` mediumint NOT NULL DEFAULT 0,
`str` mediumint NOT NULL DEFAULT 0,
`int` mediumint NOT NULL DEFAULT 0,
`spi` mediumint NOT NULL DEFAULT 0,
`sta` mediumint NOT NULL DEFAULT 0,
`energy` mediumint NOT NULL DEFAULT 0,
`rage` mediumint NOT NULL DEFAULT 0,
`focus` mediumint NOT NULL DEFAULT 0,
`runicpwr` mediumint NOT NULL DEFAULT 0,
`defrtng` mediumint NOT NULL DEFAULT 0,
`dodgertng` mediumint NOT NULL DEFAULT 0,
`parryrtng` mediumint NOT NULL DEFAULT 0,
`blockrtng` mediumint NOT NULL DEFAULT 0,
`mlehitrtng` mediumint NOT NULL DEFAULT 0,
`rgdhitrtng` mediumint NOT NULL DEFAULT 0,
`splhitrtng` mediumint NOT NULL DEFAULT 0,
`mlecritstrkrtng` mediumint NOT NULL DEFAULT 0,
`rgdcritstrkrtng` mediumint NOT NULL DEFAULT 0,
`splcritstrkrtng` mediumint NOT NULL DEFAULT 0,
`_mlehitrtng` mediumint NOT NULL DEFAULT 0,
`_rgdhitrtng` mediumint NOT NULL DEFAULT 0,
`_splhitrtng` mediumint NOT NULL DEFAULT 0,
`_mlecritstrkrtng` mediumint NOT NULL DEFAULT 0,
`_rgdcritstrkrtng` mediumint NOT NULL DEFAULT 0,
`_splcritstrkrtng` mediumint NOT NULL DEFAULT 0,
`mlehastertng` mediumint NOT NULL DEFAULT 0,
`rgdhastertng` mediumint NOT NULL DEFAULT 0,
`splhastertng` mediumint NOT NULL DEFAULT 0,
`hitrtng` mediumint NOT NULL DEFAULT 0,
`critstrkrtng` mediumint NOT NULL DEFAULT 0,
`_hitrtng` mediumint NOT NULL DEFAULT 0,
`_critstrkrtng` mediumint NOT NULL DEFAULT 0,
`resirtng` mediumint NOT NULL DEFAULT 0,
`hastertng` mediumint NOT NULL DEFAULT 0,
`exprtng` mediumint NOT NULL DEFAULT 0,
`atkpwr` mediumint NOT NULL DEFAULT 0,
`mleatkpwr` mediumint NOT NULL DEFAULT 0,
`rgdatkpwr` mediumint NOT NULL DEFAULT 0,
`feratkpwr` mediumint NOT NULL DEFAULT 0,
`splheal` mediumint NOT NULL DEFAULT 0,
`spldmg` mediumint NOT NULL DEFAULT 0,
`manargn` mediumint NOT NULL DEFAULT 0,
`armorpenrtng` mediumint NOT NULL DEFAULT 0,
`splpwr` mediumint NOT NULL DEFAULT 0,
`healthrgn` mediumint NOT NULL DEFAULT 0,
`splpen` mediumint NOT NULL DEFAULT 0,
`block` mediumint NOT NULL DEFAULT 0,
`mastrtng` mediumint NOT NULL DEFAULT 0,
`armor` mediumint NOT NULL DEFAULT 0,
`armorbonus` mediumint NOT NULL DEFAULT 0,
`firres` mediumint NOT NULL DEFAULT 0,
`frores` mediumint NOT NULL DEFAULT 0,
`holres` mediumint NOT NULL DEFAULT 0,
`shares` mediumint NOT NULL DEFAULT 0,
`natres` mediumint NOT NULL DEFAULT 0,
`arcres` mediumint NOT NULL DEFAULT 0,
`firsplpwr` mediumint NOT NULL DEFAULT 0,
`frosplpwr` mediumint NOT NULL DEFAULT 0,
`holsplpwr` mediumint NOT NULL DEFAULT 0,
`shasplpwr` mediumint NOT NULL DEFAULT 0,
`natsplpwr` mediumint NOT NULL DEFAULT 0,
`arcsplpwr` mediumint NOT NULL DEFAULT 0,
PRIMARY KEY (`typeId`,`type`)
`type` smallint(5) unsigned NOT NULL,
`typeId` mediumint(8) NOT NULL,
`nsockets` tinyint(3) unsigned NULL,
`dps` float(8,2) NULL,
`damagetype` tinyint(4) NULL,
`dmgmin1` mediumint(5) unsigned NULL,
`dmgmax1` mediumint(5) unsigned NULL,
`speed` float(8,2) NULL,
`mledps` float(8,2) NULL,
`mledmgmin` mediumint(5) unsigned NULL,
`mledmgmax` mediumint(5) unsigned NULL,
`mlespeed` float(8,2) NULL,
`rgddps` float(8,2) NULL,
`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,
`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,
PRIMARY KEY (`type`,`typeId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -1601,7 +1601,6 @@ CREATE TABLE `aowow_itemset` (
`bonusText_loc4` text DEFAULT NULL,
`bonusText_loc6` text DEFAULT NULL,
`bonusText_loc8` text DEFAULT NULL,
`bonusParsed` varchar(256) DEFAULT NULL COMMENT 'serialized itemMods',
`npieces` tinyint NOT NULL DEFAULT 0,
`minLevel` smallint NOT NULL DEFAULT 0,
`maxLevel` smallint NOT NULL DEFAULT 0,
@@ -3228,7 +3227,7 @@ UNLOCK TABLES;
LOCK TABLES `aowow_dbversion` WRITE;
/*!40000 ALTER TABLE `aowow_dbversion` DISABLE KEYS */;
INSERT INTO `aowow_dbversion` VALUES (1717354215,0,NULL,NULL);
INSERT INTO `aowow_dbversion` VALUES (1718468661,0,NULL,NULL);
/*!40000 ALTER TABLE `aowow_dbversion` ENABLE KEYS */;
UNLOCK TABLES;