Giter Site home page Giter Site logo

nornagon / cdda-guide Goto Github PK

View Code? Open in Web Editor NEW
98.0 4.0 24.0 32.65 MB

The Hitchhiker's Guide to the Cataclysm

Home Page: https://cdda-guide.nornagon.net

License: GNU General Public License v3.0

JavaScript 3.91% CSS 3.07% HTML 0.21% Svelte 56.13% TypeScript 36.66% Shell 0.01%
cataclysm-dda

cdda-guide's Introduction

The Hitchhiker's Guide to the Cataclysm

The Hitchhiker's Guide to the Cataclysm is a guide to the zombie survival roguelike game Cataclysm: Dark Days Ahead. You can search for things in the game, like items, or monsters, and find useful information about them. The data in the Guide comes directly from the JSON files in the game itself.

The Guide stores all its data locally and is offline-capable, so you can take it with you whereever you go. There's nothing to do to make the Guide work offline, just visit the page and it will work even without internet access, as long as you've visited it once before. It's also installable, so you can pop it out of your browser and use it like a regular app.

More popular than the Celestial Home Care Omnibus, better selling than Fifty-three More Things to do in Zero Gravity, and more controversial than Oolon Colluphid's trilogy of philosophical blockbusters Where God Went Wrong, Some More of God's Greatest Mistakes and Who is this God Person Anyway?

📕 Open the Guide

Acknowledgements

The Hitchhiker's Guide to the Cataclysm is maintained by @nornagon, with generous contributions from the following folks:

Further, thanks to everyone who files bugs and feature requests in the issue tracker. You all help make the Guide what it is!

Translation

The Guide is available in every language that Cataclysm supports. The game data will be presented using the translations from the game itself, but the Guide's UI is not yet translated into every language. You can help! Translations are crowdsourced on Transifex. If you do: thanks so much for your help! 感謝! Gracias! Merci! Obrigado! Danke! 谢谢! 감사해요! Благодарность! ευχαριστώ! Terima kasih! !شكرًا Takk! Dziękuję! Спасибі! 🙇‍♂️

🌐 Help translate the Guide!

cdda-guide's People

Contributors

calkerethi avatar casswedson avatar faalagorn avatar guardiandll avatar hexagonrecursion avatar hfox avatar nornagon avatar pizzasgood avatar scarf005 avatar z2oh 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  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  avatar

cdda-guide's Issues

Severe lag on livesearch in Firefox

As said here, I'm seeing consistent lagging while filling search field. Win7 64, firefox 78.9.0esr. Attached profiling is showing me trying to search for "heavy duty frame" (without quotes, of course), which takes about 30 seconds to complete.

profile.zip

Suggested easy fix: add 0.5s-1s wait-after-last-keypress timer to search. We don't usually need to see each and every item fitting left(what we actually search for, N) for each and every N

feature request: ability to specify a search string via url

much the same way you can specify an exact result with #/item/flashlight, it would be helpful if we had some url target that would specify a search, so that we can set up a bot link on the official dev discord that links to search results.

example use case (exact syntax match not needed):
image

how we construct the command on the bot side:
image

Location page + search

we already show what locations a particular item can be looted in. we should also show the inverse; what items can be looted in a particular location.

it might also be cool to show:

  • what monsters can spawn in a location
  • a map

FIT flag for item directory

Some items in the directory e.g. https://nornagon.github.io/cdda-guide/#/item/jacket_leather_tire are displaying encumbrance values for when they don't fit - that armor should show 10 encumbrance, not 20. This makes the listed encumbrance values confusing and inaccurate to what you'd get in the game if you found a piece that fit, or crafted it, or repaired a piece. Since not all items that have encumbrance even use the FIT flag it's unclear when looking at the guide whether the numbers are accurate.

It sounds annoying to program, but I suggest figuring out a way to make it so all items are shown with their FIT encumbrance values just for clarity's sake, or perhaps include a toggle so that people can see it either way.

Misnamed items

Sticks are now stout branches and have the description, "A respectable length of tree branch, just big enough to wrap your hand around. Makes a decent melee weapon."
Long sticks are now long stout branches and have the description, "A straight section of wood from a tree branch, about eight feet long and a couple of inches in diameter. Makes a decent melee weapon, and can be broken into shorter pieces for crafting."
Both, bundles of stout branches and bundles of long stout branches use the antiquated name in their disassembly list.

Comparison tool

It'd be nice if you could do, for example, -hhg vs zombie_hulk kevlar_hulk to get a two-paned page similar to the item comparison page ingame, or -hhg vs barrett ruger to get an item comparison between the two.

Just, each flag that's unique would be green on that side, each number that's bigger would be green on its side and red on the other, etc.

Show file name in raw JSON

It would be nice to be able to see the directory + file name from which the raw JSONs (recipe + item) have been pulled. If you want to modify something, you know immediately where to find it and you don't have to a do a search on all the json files for the name/id of the item :)

documentation request: how to get a local copy for offline use without installing as pwa

this came up on the development discord that in the description for the guide, you advertise you can make an offline copy, but don't give instructions for how to do this.

i originally assumed the person was asking about installing it, but you mention installing as a separate thing from an offline copy

in my tests i wasn't able to determine how to make a local copy of the guide that actually functions. it'd be nice if there was something to indicate how to do that on at least the popular browsers

Documenting offline usage

Hi,
the readme mentions that

"The Guide stores all its data locally and is offline-capable, so you can take it with you whereever you go. It's also installable, so you can pop it out of your browser like a regular app."

Could you add instructions for how to use the guide offline/install it locally? This gets asked on the CDDA Discord occasionally.

SImply not working

The browser doesn't seem to correctly show any results for anything. When initially opened, the browser can search for items correctly, but trying to click on items for more info pulls up a blank page. After this, even clicking the banner at the top doesn't bring one to the initial page.

Practice recipes

It may be worth considering adding the practice recipes to the guide. Not the most pressing thing, but worth considering.

Support items obtained by bashing

"How do I get a long stick?" Our guide currently does not give a satisfactory answer. As far as I can tell you are supposed to bash a young tree. We do provide a reference from a tree to long stick, but not the other way around.

$ shopt -s globstar; jq '.[] | select(.bash | .. | .=="stick_long") | .id' data/json/**/*.json
"t_tree_alder"
"t_tree_alder_harvested"
"f_hedge_short"
"f_hedge_tall"
"f_topiary_abstract"
"f_topiary_animal"
"f_topiary_dragon"
"f_beaded_door"
"f_beaded_door_o"
"f_utility_pole"
"f_butcher_rack"
"t_tree_walnut"
"t_tree_walnut_harvested"
"t_tree_chestnut"
"t_tree_chestnut_harvested"
"t_tree_beech"
"t_tree_beech_harvested"
"t_tree_hazelnut"
"t_tree_hazelnut_harvested"
"t_tree"
"t_tree_harvested"
"t_tree_cottonwood"
"t_tree_elm"
"t_tree_dead"
"t_tree_young"
"t_tree_apple"
"t_tree_apple_harvested"
"t_tree_pear"
"t_tree_pear_harvested"
"t_tree_coffee"
"t_tree_coffee_harvested"
"t_tree_cherry"
"t_tree_cherry_harvested"
"t_tree_juniper"
"t_tree_juniper_harvested"
"t_tree_peach"
"t_tree_peach_harvested"
"t_tree_apricot"
"t_tree_apricot_harvested"
"t_tree_plum"
"t_tree_plum_harvested"
"t_tree_mulberry"
"t_tree_mulberry_harvested"
"t_tree_elderberry"
"t_tree_elderberry_harvested"
"t_tree_pine"
"t_tree_deadpine"
"t_tree_birch"
"t_tree_birch_harvested"
"t_tree_willow"
"t_tree_willow_harvested"
"t_tree_maple"
"t_tree_maple_tapped"
"t_tree_hickory"
"t_tree_hickory_harvested"
"t_tree_pistachio"
"t_tree_pistachio_harvested"
"t_tree_almond"
"t_tree_almond_harvested"
"t_tree_pecan"
"t_tree_pecan_harvested"
"t_tree_hickory_dead"

[FEATURE REQUEST] Mod content

It would be great if the Guide was able to include content from the mainline mods, notably Aftershock and Magiclysm.

Ideally, it would be possible to select which mods you want to have "active", and mod content should definitely be clearly marked as such.

Mapgen Palette Support

This would be a more development/modding focused use case but would it be possible to input a mapgen palette id and then the guide could spit out the unused symbols remaining to be used?

[Feature Request] Byproducts

It could be handy to know when a specific item can be crafted as byproduct.
Example: you can get glycerol when you craft soap bars. This is not stated in the guide, it seems that the only way to obtain glycerol is looting, even though in the soap bar page there's glycerol listed as byproduct

[Feature]: Support stable

It would be great to be able to choose either stable or experimental as the data source.

This poses a challenge in that the code is dependent on specifics of the data schema. e.g. sometimes data fields get renamed, so the version of the guide that can display the latest experimental won't necessarily be able to display the data from stable.

It might be worth it to have two separate versions of the guide, one which handles the latest stable and one which handles the latest experimental. When CDDA stable is released, the guide code can be frozen for the stable version, so it will continue to work as it did at the time stable was released. The stable version of the guide won't get new features that are available in the experimental version, but the data will all be correct and the guide should function just as it did when stable was released.

Add support for obtaining items from nested mapgens

purifier_smart_shot currently has no "obtaining" section. It looks like it only spawns in nested mapgens.

$ fgrep -r _smart_shot src/ data/
data/json/items/comestibles/mutagen.json:    "id": "purifier_smart_shot",
data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_mutagen.json:        { "item": "purifier_smart_shot", "x": 5, "y": 1, "chance": 100 },
data/json/mapgen/lab/lab_modular/lab_nests_modular/lab_nested_mutagen.json:        { "item": "purifier_smart_shot", "x": 5, "y": 6, "chance": 100 }
data/json/mapgen/lab/lab_floorplans_finale1level.json:      "mapping": { "r": { "item": [ { "item": "purifier_smart_shot", "chance": 100 } ] } },
data/mods/No_Hope/Mapgen/lab_floorplans_finale1level.json:      "mapping": { "r": { "item": [ { "item": "purifier_smart_shot", "chance": 100 } ] } },

Ammunition is displaying incorrectly

Many types of ammunition are displaying the incorrect values. Specifically, every version of a particular kind of ammunition tends to display the damage, penetration, etc. of the base type. As an example, compare the three different types of 5x50mm ammo:

https://nornagon.github.io/cdda-guide/#/item/5x50dart
https://nornagon.github.io/cdda-guide/#/item/reloaded_5x50dart
https://nornagon.github.io/cdda-guide/#/item/5x50heavy

They all display as 20 damage and 30 pen, but in-game the reloaded has 18 damage, 21 pen, and Penetrator has 25 damage, 50 pen.

This seems to be an issue with how the Guide handles copy-from and the related "relative" and "proportional" fields, which a lot of ammo uses.

[FEATURE REQUEST] Mutations

With recent additions and changes to mutations, existing resources like the wiki are growing increasingly outdated. It would be very helpful if the Guide could extract and display traits and mutations the way it does for items and monsters.

The most valuable feature would be the ability to select a given mutation line and see all mutations associated with it, ideally separated into pre- and post-threshold. For individual mutations, it would of course be good if the Guide could parse information like stat bonuses and attack frequency, but the only information that needs to be there is the name of the mutation, its description, what threshold(s) it's associated with and whether it requires crossing the threshold or not. Plus the raws, naturally.

Locale

Hello. Is there a way to change locale of the guide? I have troubles with english so it would be cool if i can somehow change it to other language, that i actually use ingame.

bug: html encoded non-alphanumerics in a search url get improperly handled

from the discord coversation over here

using a url such as https://nornagon.github.io/cdda-guide/#/search/atomic%20coffee technically works, despite having atomic%20coffee in the search box. it should probably be getting translated back to printables.

but some other terms do not work correctly from url form: scanner%20bed claims no results, while scanner bed provides one.

barbed%20wire should have two matches, but also claims no results.

List weapons by category

The item list is obviously great for finding out about a particular weapon, but I often find myself wanting to approach from the other direction. E.g. I want to look at every pistol, or every 5.56 rifle. It would be great if each weapon listed certain categories it belonged to, and if those categories had pages listing the relevant weapons, just like materials or mutation categories work currently. The relevant categories I can think of are:

  • Martial arts "weapon_category"
  • Weapon skill/type (pistol, smg, rifle, etc.)
  • Ammo type(s)

These should also be visible and linked on the weapon's page and, in the case of weapon_category, on the various martial arts pages as well. Those could probably stand to list every weapon they include, actually.

(Thanks for adding martial arts, btw. That was starting to get real hard to keep track of.)

Items that extend a base item do not apply the "delete qualities" fields

E.g., the steel frying pan has both level 3 and level 2 food cooking quality. Presumably because after extending from base_cookpot, it doesn't delete the COOK 3 quality. It does apply the extend COOK 2 quality though.

Relevant excerpts from dining_kitchen.json:

  {
    "abstract": "base_cookpot",
    ...
    "qualities": [ [ "COOK", 3 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ], [ "CHEM", 1 ] ],
  },

  {
    "id": "steel_pan",
    "name": { "str": "steel frying pan" },
    "copy-from": "base_cookpot",
    ...
    "delete": { "qualities": [ [ "COOK", 3 ] ] },
    "extend": { "qualities": [ [ "COOK", 2 ] ] }
  }

Addtionally linked to this, the food cooking tool quality page lists the steel frying pan as a level 3 food cooking item when it is only level 2 (though, I assume this will be fixed automatically once the base issue is fixed)

Feature: browsable lists of things

from @novel on discord, would be useful for finding things you don't know the name of.

items could be categorized as in the game (book/ammo/armor/etc.)

monsters could be categorized by species or faction perhaps?

furniture doesn't really have a categorization...

Unable to See Certain Locations Within Hitch-HIker's Guide Website

I really love this site and use it all the time however, I noticed that some (newer?) locations do not seem to show up on the site, despite it seeming to scan from the game's database of locations.

For instance, the Trans Coast Logistics lab does not appear at all in drop rates. Probably a few more as well however, this can lead to significant holes in loot table searches and similar.

Flags catalog doesn't list all flags

Many vehicle parts use flags that don't show up in vp_flags.json (or anywhere else), which leaves the Flags catalog a little lacking. I've submitted CleverRaven/Cataclysm-DDA#49168, which would fix it without requiring any further code on this end.

Not sure what the right handling is for the LIGHT_# flags on items. (Merging them all into LIGHT? Pretending they don't exist?) They have special handling in item_factory.cpp and there are arbitrarily many of them.

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.