Giter Site home page Giter Site logo

fonsleenaars / tqdb Goto Github PK

View Code? Open in Web Editor NEW
51.0 3.0 15.0 87.96 MB

Python parser for the Titan Quest Anniversary Edition, Ragnarok, Atlantis, Eternal Ember DLC database.

Home Page: https://tq-db.net

License: MIT License

Python 100.00%
python equipment database titan-quest ragnarok immortal-throne atlantis

tqdb's Introduction

TQDB

TQDB is a Python parser written for the extracted content of Titan Quest, currently owned by Nordic Games.

Titan Quest

Although the base game Titan Quest was released in 2006 and the expansion Immortal Throne in 2007, I, as many others kept playing it throughout the years. With the recent pick up by Nordic Games there are changes being made to the database that are no longer reflect in the other databases that are still around (most notably GameBanshee).

That, and a desire to create a smoother equipment database running on some more modern technologies, prompted me to start breaking down the ARZ and ARC files that make up the in-game content for Titan Quest.

The result is two files containing all in-game information:

  • A single JSON file (per locale) containing the data (equipment, sets, skills, boss loot, etc.)
  • A single sprite image along with a CSS sprite sheet containing all the graphics for the equipment available in the JSON file.

Automated Setup

The prepare.py module automates most of the setup required, with the exception of the ARZ Database.

Automated setup assumes that you have Titan Quest Anniversary Edition installed through Steam. It will (currently) not work for other installation setups. Please report an issue describing your setup if it doesn't work for you.

To run the automated setup:

  1. Run:

    python prepare.py
    
  2. Next, set up the ARZ Database by following only item 1 of the Manual Setup instructions below.

Manual Setup

During the setup we're going to use the following example paths:

  • Location of your clone of this git repository: c:/tqdb
  • TQ Install: c:/Steam/SteamApps/Common/Titan Quest - Anniversary Edition/

The data directory needs to be created in the same directory as your git clone, so for this example that would be c:/tqdb/data. Directories such as data/database are assumed to be relative to your cloned repo.

Python

Python 3.6 or higher and Pipenv are required to run this project. To get started with a clean setup, open up a shell, navigate to this project, then run:

  • pipenv clean
  • pipenv install

1. ARZ Database

  1. Make sure the data/database directory exists. You will need about 2GB of free space.

  2. Run utils/arzextractor/ARZExtractor.exe

  3. Select the Database/database.arz file from your Titan Quest installation directory, choose data/database as the destination folder, and click Extract.

    ARZ file: database.arz

    Destination folder: data/database

2. Templates

  1. Make sure the data/database directory exists.
  2. Open up a prompt, change directory to your TQ install.
  3. Run the following command: ArchiveTool.exe Toolset/Templates.arc -extract C:/tqdb/data/database

3. Text Resources

  1. Make sure the data/resources directory exists.
  2. Choose a language you want to extract, and create the folder for it in the resources directory. For example, english would be: data/resources/en. The available locales are:
    • cs - Czech
    • de - German
    • en - English
    • es - Spanish
    • fr - French
    • it - Italian
    • jp - Japanese
    • ko - Korean
    • pl - Polish
    • ru - Russian
    • uk - Ukrainian
    • zh - Simplified Chinese
  3. Open up a prompt, change directory to your TQ install.
  4. Run the following command: ArchiveTool.exe Text/Text_EN.arc -extract C:/tqdb/data/resources/en Replace the locale in both the arc file name and the directory to that of your choosing.

4. Textures

  1. Make sure the following folders exist:
  • data/textures/Items
  • data/textures/XPack/Items
  • data/textures/XPack2/Items
  1. Open up a prompt, change directory to your TQ install.
  2. Run the following commands:
    • ArchiveTool.exe Resources/Items.arc -extract C:/tqdb/data/textures/Items
    • ArchiveTool.exe Resources/XPack/Items.arc -extract C:/tqdb/data/textures/XPack/Items
    • ArchiveTool.exe Resources/XPack2/Items.arc -extract C:/tqdb/data/textures/XPack2/Items

5. Quests

  1. Make sure the data/quests folder exists.
  2. Open up a prompt, change directory to your TQ install.
  3. Run the following command:
    • ArchiveTool.exe Resources/Quests.arc -extract C:/tqdb/data/quests
    • ArchiveTool.exe Resources/XPack/Quests.arc -extract C:/tqdb/data/quests
    • ArchiveTool.exe Resources/XPack2/Quests.arc -extract C:/tqdb/data/quests

Running the parser

pipenv run python ./run.py - Runs the parser with the default english locale pipenv run python ./run.py --locale fr - Runs the parser with the french locale

You can specify any of the two letter locales that are mentioned in the setup.

Running the project will take several minutes. Each time a category of work is completed a message will be printed.

Example output:

10:52 Parsed affixes in 3.3582386547089422 seconds.
10:54 Parsed creatures in 164.8914079976941 seconds.
10:56 Parsed equipment in 69.75900988261375 seconds.
10:56 Parsed quest rewards in 1.4686661400843093 seconds.
10:56 Parsed sets in 0.37698949130347614 seconds.
10:56 Writing output to files...

There will also be messages about missing tags, bitmaps, or other unexpected values found in the records. These are used for debugging purposes.

Miscellaneous

DBR Parser

Titan Quest works with so called DBR files (Database Records). These files are basically dictionaries of all properties of whatever the file is referencing. The file is comma separated, with the following formats:

key,value1;value2;value3,
key,value1,
key,value1

These values can thus easily be parsed into a usable dictionary or collection. The keys for these files are checked based on the Template used for the DBR file, which is defined in the templateName key, and indirectly in its Class key as well.

TextureViewer

This parser uses the TextureViewer program created by Max McGuire to convert the TEX files into transparent PNGs. I included the program, the DLL and the readme in its entirety in the repo.

ReactJS Website implementation

I have created a React wrapper of the parsed JSON result on tq-db.net. This website allows for some easy navigation and filtering of the data set. You can report any issues you find on the website on this repository's issue tracker.

tqdb's People

Contributors

dependabot[bot] avatar fleenaars avatar fonsleenaars avatar highbornhellest avatar rehevkor5 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tqdb's Issues

Filter bosses/heroes listed as being able to drop items by using item level + loot table item min/max level

Some bosses/heroes listed on website as being able to drop a specific item from their loot pool don't appear to actually be able to do so if the item's level is outside of the loot table's level ranges, and it does not appear that the item drop chances listed on the website take this into account. Below, I document evidence for why I think this is the case.

Over the last two weeks, I did about 2000 Hydra chest runs, hoping to get a specific drop from it (see my username). During this time, I did not get any such drops, but I did not get any Aphrodite's Favor drops either. What follows is an estimation of the probability of Aphrodite's Favor not dropping during this time.

Per the website, each item dropped from the Hydra's chest has a 0.077% chance of being an Aphrodite's Favor drop - this may not be completely accurate, but it's good enough for an order-of-magnitude calculation. From the extracted game files, the Hydra loot table is hydra_default_55-57, and using the numSpawnMinEquation and numSpawnMaxEquation attribute values, we estimate that the chest should drop ~9 items each time (rounding down for the sake of a conservative estimate). Therefore, the chance of obtaining at least one Aphrodite's Favor drop each Hydra run is ~ 0.69%.

Given this drop rate for Aphrodite's Favor, the probability that no Aphrodite's Favors are dropped in 2000 Hydra chest runs is then ~ 0.0001% i.e. a one-in-a-million occurrence, which is what happened to me. It's possible that this could just be due to RNG, but I suspect that what's happening here is that it's actually not possible for Aphrodite's Favor to drop from Hydra. I think that this is likely because Aphrodite's Favor has an item level of 80 (according to its itemLevel attribute), and in the legendary amulet drop table used by the Hydra chest (amulet_l01), the maximum possible level of the items that are allowed to drop from this table is 69, per the maxItemLevelEquation value, and as such Aphrodite's Favor can't actually drop from the amulet_l01 table. Some evidence that this is how the min/maxItemLevelEquation work can be found in page 51 of the Grim Dawn modding guide - of course, this is assuming that the Grim Dawn engine has the same underlying mechanics as Titan Quest.

Finally, note that this is just the calculation for Aphrodite's Favor; I spotchecked several other legendary items which did not get dropped during those 2000 runs (e.g. Kraken's Fist, Fingerbone of Boreas), and found that they too, had an item level outside of the max item level specified for their corresponding drop table.

The upshot of all this is: I don't believe it's possible for the Hydra (or other Act 1 bosses) to drop Sapros and other high-level legendaries any more. It may have been possible in the past - I've seen some posts where people mention getting Sapros drops from the Hydra - but I suspect it isn't any more.

If this is correct, then I think it would be useful to filter the bosses/heroes listed on the website as having an item in their drop table down to those who are actually able to drop the item, based on the item level and the maxItemLevelEquation of the loot table the boss/hero is using.

Add quest rewards to loot tables

The loot tables currently only list the rewards from bosses. Expand this list by adding quest rewards to the loot tables.

For the parser this should be relatively simple; implement the same type of parsing of loot tables that already exists for bosses.

For the website, displaying this should list the quest name (and maybe the act?), and either update the look of the loot tables (because more space will be needed), or find a way to integrate it into the current list.

Quest List:
The loot tables currently only list the rewards from bosses. Expand this list by adding quest rewards to the loot tables.

For the parser this should be relatively simple; implement the same type of parsing of loot tables that already exists for bosses.

For the website, displaying this should list the quest name (and maybe the act?), and either update the look of the loot tables (because more space will be needed), or find a way to integrate it into the current list.

Main quests

  • tagGreeceQ1UiTitle: A Troubled Village
  • tagGreeceQ2UiTitle: Spartans at War
  • tagGreeceQ3UiTitle: The Words of the Oracle
  • tagGreeceQ4UiTitle: The Source of the Monsters
  • tagGreeceQ5UiTitle: The Battle for Athens
  • tagGreeceQ6UiTitle: The Order of Prometheus
  • tagGreeceQ7AltUiTitle: The Heart of the Maze
  • tagGreeceQ7UiTitle: Under the Labyrinth
  • tagEgyptQ8UiTitle: The Blindness of the Gods
  • tagEgyptQ9UiTitle: The Invocation
  • tagEgyptQ10UiTitle: A Telkine in Egypt
  • tagOrientQ11UiTitle: The Sickle of Kronos
  • tagOrientQ12UiTitle: Hunt for the Sickle
  • tagOrientQ13UiTitle: Journey to the Jade Palace
  • tagOrientQ14UiTitle: Under Wusao Mountain
  • tagOlympusQ15UiTitle: Olympus
  • xtagxQ01_Title: A Mysterious Message
  • xtagxQ02_Title: Medea's Price
  • xtagxQ03_Title: The Road to Hades
  • xtagxQ04_Title: Judgment of the Living
  • xtagxQ05_Title: The Battle for Elysium
  • xtagxQ06_Title: The Immortal Throne
  • x2tagx2Q01_Title: Troubles of a New Age
  • x2tagx2Q02_Title: The Warrior Princess
  • x2tagx2Q03_Title: The Power of Nerthus
  • x2tagx2Q04_Title: Scandia under Siege
  • x2tagx2Q05_Title: The Rescue
  • x2tagx2Q06_Title: The Wisest Being
  • x2tagx2Q07_Title: The Burning Sword

Side quests

Greece

  • tagRumorGr1Title: Medicines Waylaid
  • tagRumorGr1bTitle: Monstrous Brigands
  • tagRumorGr2Title: The Cornered Man
  • tagRumorGr3Title: The Lost Dowry
  • tagRumorGr4Title: The Ancient of War
  • tagRumorGr5Title: The Poisoned Spring
  • tagRumorGr6Title: Skeleton Raiders
  • tagRumorGr7Title: Goods Abandoned
  • tagRumorGr8Title: News of a Shipwreck
  • tagRumorGr9Title: The Good Centaur
  • tagRumorGr10Title: A Master Blacksmith
  • tagRumorGr11Title: The Grieving Widow
  • tagRumorGr12Title: Trapped in the Ruins
  • tagRumorGr13Title: Spartans Lost
  • tagRumorGr14Title: A Proper Offering
  • tagRumorGr15Title: Monsters in the Market
  • tagRumorGr16Title: Xanthippus the Healer
  • tagRumorGr17Title: The Undead Tyrant

Egypt

  • tagRumorEg1Title: The Family Heirloom
  • tagRumorEg2Title: The Beast of Legend
  • tagRumorEg3Title: A Promethean Surrounded
  • tagRumorEg4Title: Plight of the Nile Farmers
  • tagRumorEg5Title: Lowest of the Low
  • tagRumorEg6Title: The High Priest's Request
  • tagRumorEg7Title: The Missing Brother
  • tagRumorEg8Title: Khufu's Curse
  • tagRumorEg9Title: A Hidden Treasure
  • tagRumorEg10Title: Caravan Woes
  • tagRumorEg11Title: The Corrupted Priest

Orient

  • tagRumorOr0Title: A Gargantuan Yeti
  • tagRumorOr1Title: The Seeds of Destruction
  • tagRumorOr2Title: Neanderthal Shaman
  • tagRumorOr3Title: Mystery in the Mountains
  • tagRumorOr4Title: The Village Temple
  • tagRumorOr5Title: Caravan in Trouble
  • tagRumorOr6Title: A Lesson in Despair
  • tagRumorOr7Title: The Child and the Raptor
  • tagRumorOr8Title: Peng Problems
  • tagRumorOr10Title: The Wealthy Collector
  • tagRumorOr11Title: Stalker in the Woods
  • tagRumorOr12Title: The Emperor's Clay Soldiers
  • tagRumorOr13Title: Terra Cottas At Large
  • tagRumorOr14Title: Behind the Waterfall
  • tagRumorOr15Title: The Hermit Mage
  • tagRumorOr16Title: Three Sisters
  • tagRumorOr17Title: A General in Repose

Hades

  • xtagxSQ01_Title: A Crab Story
  • xtagxSQ02_Title: An Impossible Task
  • xtagxSQ03_Title: The Torch-Lighter's Gauntlet
  • xtagxSQ04_Title: Outpost in the Woods
  • xtagxSQ05_Title: Lampido's Potion
  • xtagxSQ06_Title: The Wealth of Ancient Kings
  • xtagxSQ07_Title: The Stolen Sigil
  • xtagxSQ08_Title: The Treasure Hunters
  • xtagxSQ09_Title: Among the Ruins
  • xtagxSQ10_Title: A Dangerous Mission
  • xtagxSQ11_Title: The Enemy's Captain
  • xtagxSQ12_Title: One Who Would Lead
  • xtagxSQ13_Title: The Stygian Lurker
  • xtagxSQ14_Title: The Dust of a Titan
  • xtagxSQ15_Title: Eurydice and Orpheus
  • xtagxSQ16_Title: An Invitation
  • xtagxSQ17_Title: An Inside Source
  • xtagxSQ18_Title: The Necromanteion
  • xtagxSQ19_Title: Hades' Treasury
  • xtagxSQ20_Title: Admetus Among the Dead
  • xtagxSQ21_Title: Flight of the Messenger
  • xtagxSQ22_Title: The Achaean Pass
  • xtagxSQ23_Title: To the Eronian Heights
  • xtagxSQ24_Title: A Noisy Diversion
  • xtagxSQ25_Title: The Siege Striders
  • xtagxSQ26_Title: The Shards of Erebus
  • xtagxSQ27_Title: Hades' Generals

The North

  • x2tagx2SQ01_Title: Festivities
  • x2tagx2SQ02_Title: Sciron
  • x2tagx2SQ03_Title: A Northern Contact
  • x2tagx2sq04_Title: White Gold
  • x2tagx2SQ05_Title: Heart to Stomach
  • x2tagx2sq06_Title: The Golden Sickle
  • x2tagx2SQ07_Title: Wine from the Rhine
  • x2tagx2SQ08_Title: Celtic Plaid
  • x2tagx2SQ09_Title: The Troubled Son
  • x2tagx2SQ10_Title: Little Friends
  • x2tagx2sq11_Title: The Kornwyf's Scythe
  • x2tagx2SQ12_Title: The Trapped Nixie
  • x2tagx2SQ13_Title: Fir Cone Liquor
  • x2tagx2sq14_Title: The Magic Cauldron
  • x2tagx2sq15_Title: The Restless King
  • x2tagx2sq16_Title: The Survivor
  • x2tagx2sq17_Title: Giesel
  • x2tagx2sq18_Title: The Spectral Wolf
  • x2tagx2sq19_Title: Squabbling Merchants
  • x2tagx2sq20_Title: The Craftman's Passion
  • x2tagx2sq21_Title: Dvergar History
  • x2tagx2sq22_Title: Legendary Craftsmanship

Add alphabetical and level sorting to set list

Suggestion from the community forums

Originally posted by Raye_Terse:
Hi, I have some feedback on the Set List that I wanted to share.

To start with, I really like the feature, and I use it frequently as a ctrl+f lookup table of sorts.

Thing is, I think there's a pretty easy way to expand the functionality of the list by a lot, especially for newbies.

If the list was sorted by level ranges first and then alphabetically within each level range, it would be a lot easier to use it for discovering items and item sets you want to use with your toon than it is right now. Pretty much any usecase where you don't already know the name of the set you're looking for is improved by this change, simply because you will always know the level of your toon. The only usecase I can think of that is impacted negatively, is one where you know the name of the set you're looking for, but not its level and you can't ctrl+f it for some reason. Personally, I think the tradeoff seems worth it.

So it would look something like this:

Level 1 - 10:
(list of all sets within range)
Level 11 - 20:
(list of all sets within range)
Level 21 - 30:
Etc.

Scripts on monsters page hangs

When going to the monsters tab some scripts hangs and I have to terminate the script (making it thus impossible to swap to loot table or the different difficulties of each monster)

Using waterfox 56.2.2 (64-bit)
Windows 10 pro 64-bit

Add multiple languages

The resources contain multiple languages, adding these should be possible.

Some of the properties are currently hard-coded, these should be updated to rely on language resources instead.

Update scripts

Hi.

Please, update pyton-scripts for Titan Quest Ragnarok

Theanks

Add editing for hero?

I see theres a lot of threads on internet/steam discussions about editing hero (mastery, skill points etc.), we need to use some programmes like TQVault/TQDefiler, but with Ragnarok it's not working correctly. Can u add something like this, or add a character on Helos on each difficulty levels who will do it for like 5 millions (or other large amount of money :D). It will be useful for all who like to combine with their hero.

a mistake of Suffix

of Guile
equipment also can be in arms(worrior)
please add arms(worrior) in equipment

I can't load your site

Hi! I've been using your database for a really long period of time, so now, when I have a chance to thank you for this, I would like to it first of all. I think it's a greate idea to sum up every bit of information about this game, thanks for that:) However last 2 mounthes I coudn't load this site, I' ve tried different methodoes(a phone and a pc), but result was the same - google said(for this moment I was using google translator, 'cause my eng is too bad :( ): "The website www.tq-db.net can not establish a connection" just like it is on the screen below. Can you please give me some advise, because, considering the fact, that's there is no such theame here, I deceided the I am doing something wrong. If such theame exists pls sorry me for my inattention
err

Some ideas for the project

I have some ideas about your project. Maybe you can realize it.

  1. Create world map of Titan Quest like Google maps but for game. How it relized in social club for GTA 5
    screenshot_2
  2. Create Titan Calc with support TQ: Ragnarok and integrate with your database, where we can check stats with stuff and masteries. I know about http://www.titancalc.com/ but there is a bad interface, not support Ragnarok and not bugfixes from patches.

Documentation for external dependencies

Would it be possible to update the documentation and/or source code of what's needed in order to get the parser to run correctly?

When I pull code from the branch and execute run.py, the parser finishes parsing skills and affixes correctly, but as soon as it attempts to parse "weapons, jewelry and armor", I get repeated TextureViewer.exe crashes, even though the Texture Viewer application itself seems to work fine if I try to extract textures manually.

I've checked the Windows Logs to see whether anything useful is logged in the system event logs for the TextureViewer crashes, though the logs don't seem very useful - happy to post samples if you think that will help.

Additionally, I'm also getting errors when trying to parse just "skills", which look like they're happening because I have incompatible versions of some core libraries installed. Any documentation of which versions of the libraries are being used here, or instructions on getting this to run from a clean Python install would be helpful.

run.py -c skills
Determining what files are required...
Parsing skills [####################] DONE
Writing output to files...
Traceback (most recent call last):
File "E:\Python\Anaconda\lib\site-packages\PIL\ImageFile.py", line 482, in _sa
ve
fh = fp.fileno()
AttributeError: '_idat' object has no attribute 'fileno'

During handling of the above exception, another exception occurred:
File "E:\Python\Anaconda\lib\site-packages\PIL\Image.py", line 1930, in save
save_handler(self, fp, filename)
File "E:\Python\Anaconda\lib\site-packages\PIL\PngImagePlugin.py", line 821, i
n _save
[("zip", (0, 0)+im.size, 0, rawmode)])
File "E:\Python\Anaconda\lib\site-packages\PIL\ImageFile.py", line 490, in _sa
ve
e.setimage(im.im, b)
SystemError: tile cannot extend outside image

Aionios - no droptable

Hello,

Aionios doesn't have any droptable - is this thing undroppable or wasn't the droptable transferred correctly?

Best regards

Running list of TQ item issues

Some of the issues are unfixable by the parser because the data of the actual files is incorrect. These can be communicated to the development team, but having them organized in one place is pretty useful. Since I run in to them while working on the parser, I figured I'd compile them here, that way anybody else that's on the tq-db.net website that notices something can add them, and if after digging a bit I realize it's an issue with the records and not the parser, I can add them here.

Scroll of Svefnthorn
The Greater Scroll of Svefnthorn is missing because it has the same tag as Divine Scroll of Svefnthorn.
dir: records\xpack2\item\scrolls
file: 02_svefnthorn.dbr
property: description,x2tagScrollName11
Should be: description,x2tagScrollName06

Remove unused affixes

There seem to be affixes in the parser that aren't actually available for any equipment, these should be removed.

Add sorting by monsters/bosses please.

Sorry for bad english. I translated with google.

You can add sorting by monsters from which items fall.
There will be a section on the side - "monsters". There are three tabs "normal", "epic", "legendary".
Click on the tab.
There appears a list of monsters.
Example for "normal".
(ACT I)
.
.
. Nehebkau ~ Scorpos King
.
.

(ACT II)
.
.
.

....................

After that
Click on some monster.
A list of items(as in "weapons" -> "axe" or another tabs) that can be dropped from the monster appears.
Example for "normal" --> Nehebkau ~ Scorpos King.
"Obsidian Crescent" | "Mikros" | "Raging Bull".........
.........
........
........

New suffix "of the Tinkerer" missing

Hey, I found spears and head gear in the Atlantis DLC with the suffix "of the Tinkerer", which makes it possible to use 2 relics on that item. This suffix is not listed on TQDB.

Add FILTER to bonus ?

Is it possible (in the futur, of course ... not this week ^^)
to add FILTER function for all existing bonus.

For Example :
[Poison Resistance]

Prefixes = Alleviating, Cleansing, Curative, Defiled ................
Suffixes = (nothing)
Armor Head = Agamemnon's Crest, Arubianus Helmet .........
Armor .......
Weapons
Jewelry
.........

Can't run run.py and prepare.py can't find game directory

Hi. I installed python on windows. I tryed to run your script prepare.py but your script can't find game directory
screenshot_2
But i have the entry in registry
screenshot_3

After that I tried run manually your script. I ran run.py but also errors
screenshot_4

Can you help me?

Add irregular affixes

Some pieces of equipment have unique/specific affixes that apply to them, regardless of their equipment category.

An example of an irregular affix is the Dvergr Greaves, which can have a torso affix:

suffixRandomizerName1,records\xpack\item\lootmagicalaffixes\suffix\tablesarmor\torsomelee_e04.dbr
prefixRandomizerName1,records\xpack\item\lootmagicalaffixes\prefix\tablesarmor\torsomelee_e04.dbr,

This supplements #24 and follows #44

Affix bugs

As of now I have found three "impossible" regular green items:

  • An "of Heroes" leg armor, even though "of Heroes" is only supposed to be found on chest armor.
  • An "of the Mammoth" helm, even though "of the Mammoth" isn't even supposed to be found at all.
  • An "of the Gryphon" arm armor, even though "of the Gryphon" is also not supposed to appear at all.

I've tried to send screenshots on e-mail, look for them there.

Site error/crash at small window widths

I was checking out the responsiveness of your site when I noticed that when on the "Monsters" section of the website, resizing the window (to at least 880px) causes the site to spit out an error and require a refresh.

This same error occurs for other sections of the site (like Weapons/Armor) but at even smaller widths.

In any case, thanks for the site its a great resource!

Add summons to scrolls, skills and properties

Summon properties aren't displaying properly on the website yet.

Summons have a time to live, health (this is currently shown as +HP, instead of HP, because of the characterLife property having a + value.), properties, and potentially some skills.

Throwin weapons targeting

When using throwing weapons, you have to walk up to your enemy more than your character initially does when you target an enemy. Making it pretty frustrating when targeting enemies that are out of reach of your weapon.

(Android version of TQ) Black Pearl Ring Dropped by Typhon on Epic

As the title states, I got a black pearl ring drop off Typhon today. I don't see Typhon listed as dropping it. Don't know if the drop rates are the same on Android as they are on PC/consoles. Especially considering this is just the original game without the expansion. Please disregard if this information is irrelevant to whatever version of TQ you are working on documenting. But since the game is also on mobile devices now, I figure this is the right place. Happy holdays and a merry Christmas!

Items are misnamed and links are broken

@Giant2005 found a list of items (#17) that are misnamed:

Some of the items are misnamed too.
Such as the shields: The Glory of Belenus and The Boar of Witham being Battersea Shield and Witham Shield respectively;
the helmets: Gutuater Cap and Peak of Leucutius being Waterloo Ceremonial Cap and Peak of Marne respectively;
the armors: Brynhild's Belt and Teutoburg Tunic being Shieldmaiden's Belt and Celtic Weapon Coat respectively;
the bracelets: Grimhild's Serpents and The Spoils being Spakona Serpent Coils and Bormo's Arm Ring respectively;
the swords: Dagger of Basbona and Sword of the Glauberg Prince being Hochdorf Lord's Dagger and Glauberg Prince's Sword respectively;
and the boots: Esus' Travelling Boots, Fine Gallic Boots, and Völva's Hardened Wraps being Boots of Esus, Celtic Boots, and Völva's Foot Leathers respectively (As an aside, the link to Völva's Hardened Wraps on the site is broken).

Parser
The misnamed items will need to be fixed in the parser. Having the correct names should make it easier to track down where the incorrect names are coming from.

Website
The link issue will need to be fixed in the website, allowing links to have more characters now that accents are involved.

Some sections don't work - "Artifacts" "Formulas & Scrolls"

Hi, on the front end of tq-db.net, the sections "Artifacts" and "Formulas & Scrolls" are just plain text, there is no content behind them, because they are not URL's.

I kindly ask you to fix this, because I would like to preview the new scrolls, artifacts and recipes (formulas) from the second addendum "Atlantis".

Thank you in advance,
Sir-Mac

Add monsters infrequents to loot tables

The monster infrequents should be relatively simple to index, because they are, as the name implies; infrequent. Only a certain type of monster, or multiple monsters, drop these items.

For the parser; this means returning the monster name, the act the monster appears in, and the chance it has it equipped. It might be interesting to also have an image of the monster, but this would require some new functionality (rendering monster images?).

For the website; the location of the Loot Table already exists so inserting the monster infrequents there should be easy.

Looking for stats no longer works

I believe this new optimization thing about only rendering the stuff the user is looking at is the cause of this issue. I would normally ctrl + f on a certain item type page to find whatever stats I'm looking for, but now it gives 0 results most of the time because the item with those stats aren't being rendered.

Example: go to the shields page, and type "reflect" in the ctrl + f search bar. I got 0 results, despite there being several shields that have this stat.

However, I can easily zoom out until every item is visible and then the search works just fine.

Affixes doesn't say which sort of items they are eligible for

Hi.
I really love the site, but if I want a green legs armor for an example, it is hard to know which prefixes and suffixes that there's even a chance of them having. Therefore not possible for me to plan, if the prefix I want can only occur on a ring or another item that isn't legs armor.
Is it possible to update the affixes to say which kinds of green and yellow items they can occur on? Does anyone even know?
Ps. Otherwise the site is perfect, except I don't quite understand why the Adamantine Sickle of Kronos isn't there along with all the basic non-magical pieces of armor and weapons which are the ones that can have all the affixes.

Dvalinn's Simulacrum

The greater artifact "Dvalinn's Simulacrum" is missing information. It does not seem to offer any information on what it actually gives. Ie, the only things in the "properties" tab are "From Arcane Formula - Dvalinn's Simulacrum" and "Grants skill: Dvalinn's Simulacrum (show details)" with the skill not having any details either.

Checklist (note: MI's [ie. Kelpie Circlet through to Bear Rider's Braces] include all difficulties):

  • Dvalinn's Simulacrum

  • The Fleeting Memory

  • Rhodian Sling

  • Electrum Sling

  • Teutoburg Tunic

  • Britomaris' Defiance

  • Fine Gallic Boots

  • Kelpie Circlet

  • Kelpie Vambrace

  • Bear Rider's Garb

  • Bear Rider's Leggings

  • Bear Rider's Bracers

  • Scroll of the Storm Witches

  • Scroll of the Sky's Rage

  • Scroll of the Breaking Wheel

  • Greater Scroll of the Storm Witches

  • Greater Scroll of the Djinn

  • Greater Scroll of the Necromancer

  • Greater Scroll of the Breaking Wheel

  • Divine Scroll of the Maddened God

  • Divine Scroll of the Breaking Wheel

  • Divine Scroll of the Behemoth

Monster attack names don't match up with effects

Hi, fonsleenaars! I first want to thank you again for this excellent resource. It's super-helpful in finding the right bosses to farm as well as how to most efficiently counter them.

I noticed on the Monsters list that the list of attack names don't match up with their effects. For instance, almost every monster has a "Frost Strike" skill as their basic attack. I'm also sure the infamous Banmaru doesn't use Flame Strike and Volcanic Orb, either. Any idea where this is coming from?

Please increase http cache expiry time

After every 24hr, the big png and bundle.js takes too much time to load on wifi and metered connections on mobile. Both of them combined are >7mb.

I think the cache expires every 24hr in chrome. I tried plugins to increase the cache time but it doesn't work.
If you could increase the expiry time by one week or a month it would be great.

e.g add something like this:
30 DAYS
location ~* .(png|gif|js|css|swf)$ {
add_header Cache-Control "max-age=2592000, public"
}

About the chance of ONE item

"For chest loot, the chance listed is the chance of any ONE item that falls out"
How about multiply that by (numSpawnMaxEquation + numSpawnMinEquation)/2 ?
(In FixedItemLoot dbrs and let numberOfPlayers=1)

Possibility to load json with data from tq-db.net

Hi! I think this is great possibility to have such feature on the site.
Not all people use Windows as OS and it can be mush easier to simply load any interesting data (armor, weapon) in json format from your site.

Database in russian

Hi. I have a russian fan-site of game (titanquest.org.ua). Can you to extract Database in russian and send me? I would like to add to own site. Can you help me?

Add jitter values

The min/max values for the items is determined by so called 'jitter'.

Adding this to the equipment will allow users to see what kind of range they can expect on the items.

For the website, integrating this should be some sort of toggle that adds a highlighted "jitter" indicator. Something along the lines of

Toggled off
10.0 Pierce Damage

Toggled on
10.0 (-/+5.0) Pierce Damage

This would mean a value of -5.0 > +5.0 Pierce damage can be added as jitter.

Blacksteel Spike incorrect

I find a different in database with game of Blacksteel Spike
I thought this Blacksteel Spike drop in last map just only 282 Physical Damage is not very reasonable.
Not conforming to the definition of this equipment

(295 ~ 313 Physical Damage,45% Pierce Ratio) in database
(266~282 Physical Damage, 40% Pierce Ratio) in game.

Add equipment types to affixes

It's very useful for the affixes (pre- and suffixes) to list what equipment they apply to.

For the parser this means adding the equipment types (using the category names) to each affix.

For the website this means displaying this information, and allowing some basic filtering on the equipment types.

Add more sources to drop table listings

The drop tables seem to be missing a few bosses' chests. I'm not sure if this is all of them, but these are the ones I noticed:

  • Boar Snatcher
  • Sandqueen Masika
  • Secret Passage (if it counts)

I noticed because I preferred to farm Sandqueen Masika for Act II loot due to her faster lap time than the other bosses, and I was wondering if the drop tables were good.

I'd also like to say: Thanks you, fonsleenaars, for this service! It's really, really helpful to have up-to-date documentation on this aging game.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.