Fix spelling issues (#45878)

* JSON description spelling fixes
* Markdown + txt spelling fixes
* Fix FLAMMABLE_ASH flag for butchering rack
* Fix result spelling of southwest
* Fix cephalopod achievement id spelling
* unsually is probably unusually
* Fix spelling in dynamic line
* Simple comment/text spelling fixes
* Fix variable/enum spellings
* Fix function spelling issues
This commit is contained in:
haveric 2020-12-08 18:46:14 -06:00 committed by GitHub
parent bfa7329ea1
commit c380afc798
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
165 changed files with 374 additions and 374 deletions

View File

@ -170,7 +170,7 @@ Move ascii arts to their own file to avoid bloat.
Enforce that functions should not have separate x, y parameters.
Add tests for sun-related functions.
Jsonize Anatomy: replace enum body_part with bodypart_id.
Implement installation requirment for CBMs.
Implement installation requirement for CBMs.
Fields can now override local light levels.
Convert itype_id to string_id<itype>.
Test and refactor item info display functions.
@ -1217,7 +1217,7 @@ Include/Exclude filter for overmap search.
Carrion can now eat adjacent crops or food.
Allow place_monster to optionally place a randomized monster using a weighted list.
Adds firewood source that automatically adds fuel to fire when it is 2/3s consumed.
Make chickens and other small domestic birds tamable (Chickenfeed)
Make chickens and other small domestic birds tameable (Chickenfeed)
Vehicles: Open all doors.
Implement player faction base.
Artifact dreams.
@ -2392,7 +2392,7 @@ Support loading worlds from CLI.
Always require RFC 4627 compliant JSON.
Include numeric to fix OSX compile.
Add a switch to retain debug symbols for profiling.
Update MXE ICE workaround to blacklist anything targetting x86_64-w64-mingw32.static
Update MXE ICE workaround to blacklist anything targeting x86_64-w64-mingw32.static
Don't keep _GLIBCXX_DEBUG when DEBUG_SYMBOLS is set.
Allow installation in a path with whitespaces.
Add a compile mode that checks for printf format errors.

View File

@ -492,7 +492,7 @@
"event_statistic": "avatar_last_crosses_mutation_threshold",
"is": "==",
"target": [ "mutation_category_id", "CEPHALOPOD" ],
"description": "crossed cephalapod mutation threshold",
"description": "crossed cephalopod mutation threshold",
"visible": "when_achievement_completed"
}
]

View File

@ -959,7 +959,7 @@
"flags": [
"PLACE_ITEM",
"TRANSPARENT",
"FLAMABLE_ASH",
"FLAMMABLE_ASH",
"MOUNTABLE",
"ALLOW_FIELD_EFFECT",
"EASY_DECONSTRUCT",

View File

@ -131,7 +131,7 @@
"id": "book_nonf_hard_sports_bike",
"type": "BOOK",
"name": { "str": "Legendary Bike Rides", "str_pl": "copies of Bike Rides" },
"description": "This unweildy coffeetable book is titled \"LEGENDARY Bike Rides Around the WORLD.\" It provides a wealth of detail about paved bike trails in every part of the globe except New England. But if you make it to Patagonia on bike, you're all set.",
"description": "This unwieldy coffeetable book is titled \"LEGENDARY Bike Rides Around the WORLD.\" It provides a wealth of detail about paved bike trails in every part of the globe except New England. But if you make it to Patagonia on bike, you're all set.",
"//isbn13": 9781760340834,
"weight": "1589 g",
"volume": "1660 ml",

View File

@ -78,7 +78,7 @@
"copy-from": "pistol_base",
"type": "GUN",
"name": { "str": "backup pistol" },
"//": "diminuitive backup pistols that lack underbarrel rails, sight dovetails and decent places to affix stocks.",
"//": "diminutive backup pistols that lack underbarrel rails, sight dovetails and decent places to affix stocks.",
"valid_mod_locations": [
[ "accessories", 2 ],
[ "barrel", 1 ],

View File

@ -433,7 +433,7 @@
"type": "COMESTIBLE",
"id": "young_yeast",
"name": "growing wild yeast",
"description": "Mixture of water, sugar and fruits with some naturally occuring yeast, that will eventually produce a more sizeable yeast culture.",
"description": "Mixture of water, sugar and fruits with some naturally occurring yeast, that will eventually produce a more sizeable yeast culture.",
"weight": "250 g",
"color": "yellow",
"container": "jug_plastic",

View File

@ -30,7 +30,7 @@
"copy-from": "kp32",
"type": "GUN",
"name": { "str": "Kel-Tec P3AT" },
"description": "Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular P3AT offers better ballistics in a small, concealable lightweight package. Handling leaves something to be desired due to snappier recoil and diminuitive controls.",
"description": "Essentially a slightly scaled up Kel-tec P32 in .380 ACP, the ever popular P3AT offers better ballistics in a small, concealable lightweight package. Handling leaves something to be desired due to snappier recoil and diminutive controls.",
"ascii_picture": "P3AT",
"weight": "218 g",
"volume": "163 ml",

View File

@ -72,7 +72,7 @@
{
"id": "CWH_DREAMER_IDEAS1",
"type": "talk_topic",
"dynamic_line": "So, like, there were some really bad riots, okay? Everyone got realy violent and nasty, and to be honest, I was on a bit of a spirit journey for a lot of it and I don't really remember too well. But the weirdest part is, nobody even *cared* about each other. It's like all our caring got sucked away. I think it was some kind of negative energy thing. And also that made the dead, like, come back to life and stuff. Plus, like, there were some monsters? I'm not really sure how they fit in.",
"dynamic_line": "So, like, there were some really bad riots, okay? Everyone got really violent and nasty, and to be honest, I was on a bit of a spirit journey for a lot of it and I don't really remember too well. But the weirdest part is, nobody even *cared* about each other. It's like all our caring got sucked away. I think it was some kind of negative energy thing. And also that made the dead, like, come back to life and stuff. Plus, like, there were some monsters? I'm not really sure how they fit in.",
"responses": [
{ "text": "You seem to know a lot, what do you think caused it all?", "topic": "CWH_DREAMER_IDEAS2" },
{ "text": "<done_conversation_section>", "topic": "TALK_NONE" },

View File

@ -41,7 +41,7 @@
},
{
"type": "overmap_location",
"id": "source_of_fabricaton",
"id": "source_of_fabrication",
"flags": [ "SOURCE_FABRICATION" ]
},
{

View File

@ -184,7 +184,7 @@
{
"type": "talk_topic",
"id": "TALK_GODCO_cook_currency",
"dynamic_line": "We use religious icons as our currency. These were made before <the_cataclysm>, and the name of our community is written on the back. It's a lot more handy than old-world dollars, those are basicly just firestarters here.",
"dynamic_line": "We use religious icons as our currency. These were made before <the_cataclysm>, and the name of our community is written on the back. It's a lot more handy than old-world dollars, those are basically just firestarters here.",
"responses": [
{ "text": "Oh, okay.", "topic": "TALK_GODCO_cook_1" },
{ "text": "What can I buy here?", "topic": "TALK_GODCO_cook_ask_goods" }
@ -209,7 +209,7 @@
"rejected": "It's okay, I can do without them. Just let me know if you reconsider.",
"advice": "There's a lot of places to look. They are common in house kitchens, restaurants or grocery stores.",
"inquire": "How is the search going? Have you found 'em?",
"success": "I really apreciate your help. Don't worry, you won't leave empty-handed.",
"success": "I really appreciate your help. Don't worry, you won't leave empty-handed.",
"success_lie": "Thanks for trying… I guess.",
"failure": "Don't worry about it, it's not that important."
},
@ -232,7 +232,7 @@
"offer": "This task is bit more serious. I don't have enough jars to preserve perishables for the future, and we can't just store everything in salt. We could do our own canning if we had some more glass jars. I could get by with 5 for now.",
"accepted": "Thanks for accepting this task. It'll take a load off my shoulders. I finally won't have to worry about this problem anymore.",
"rejected": "Just let me know if you change your mind.",
"advice": "Glass jars are not that hard to find. I'd look for them in residental areas.",
"advice": "Glass jars are not that hard to find. I'd look for them in residential areas.",
"inquire": "Have you found the jars?",
"success": "Thank you for your help. Here's your reward. I have one more task to do.",
"success_lie": "Thanks for trying… I guess.",

View File

@ -18,7 +18,7 @@
{
"type": "snippet",
"category": "<yes_to_lsd>",
"//": "Hallucinatry NPCs say these things to encourage the avatar to extend the hallucination",
"//": "Hallucinatory NPCs say these things to encourage the avatar to extend the hallucination",
"text": [
"Pink tablets! I love those!",
"Hey there's some pink tablets, take some!",

View File

@ -128,7 +128,7 @@
{
"type": "recipe",
"result": "faction_base_modular_shelter_2_well",
"description": "We should build a well, accross from the terminal. This will make our future here more secure.",
"description": "We should build a well, across from the terminal. This will make our future here more secure.",
"category": "CC_BUILDING",
"subcategory": "CSC_BUILDING_BASES",
"autolearn": false,

View File

@ -50,7 +50,7 @@
"subcategory": "CSC_FOOD_OTHER",
"skill_used": "cooking",
"difficulty": 2,
"//": "Increased recipe size, due to such miniscule amounts would have excessive loss in the straining step otherwise. Made it X8",
"//": "Increased recipe size, due to such minuscule amounts would have excessive loss in the straining step otherwise. Made it X8",
"charges": 8,
"book_learn": [ [ "cookbook_indian", 1 ] ],
"time": "30 m",

View File

@ -67,7 +67,7 @@
{
"type": "talk_topic",
"id": "TALK_millyficent_food",
"dynamic_line": "No, no, no! No food without succesfully completed experiments. We mustn't break the contract!",
"dynamic_line": "No, no, no! No food without successfully completed experiments. We mustn't break the contract!",
"responses": [
{ "text": "What do I have to do?", "topic": "TALK_MISSION_LIST" },
{ "text": "I don't think you are well.", "topic": "TALK_DONE" }

View File

@ -144,7 +144,7 @@
"rejected": "It's okay, I can do without them. Just let me know if you reconsider.",
"advice": "There's a lot of places to look. The entire outdoors is full of wild animals.",
"inquire": "How is the search going? Have you found'em?",
"success": "I really apreciate your help. Don't worry, you won't leave empty-handed.",
"success": "I really appreciate your help. Don't worry, you won't leave empty-handed.",
"success_lie": "Thanks for trying… I guess.",
"failure": "Don't worry about it, it's not that important."
},
@ -167,7 +167,7 @@
"offer": "Flour would let me break the monotony of fruit and meats.",
"accepted": "Thanks for accepting this task. Otherwise I might kill a stranger for a sandwich. Just kidding.",
"rejected": "Just let me know if you change your mind.",
"advice": "Flour is not that hard to find. I'd look for them in residental areas and professional kitchens or bakeries.",
"advice": "Flour is not that hard to find. I'd look for them in residential areas and professional kitchens or bakeries.",
"inquire": "Have you found the flour?",
"success": "Thank you for your help. Here's your reward.",
"success_lie": "Thanks for trying… I guess.",

View File

@ -377,7 +377,7 @@
"type": "profession",
"id": "afs_cecaelia_scientist",
"name": "Engineered Deep Sea Explorer",
"description": "Created with the exploration of the deep sea in mind Cecaelia are hybridized from cephalopod and fish dna. While you were mostly spared from the corporate wars by your scientific proclivities, the polite niceties of the surface are mostly forgotten underwater. You were on dry land when the Cataclysm occured and you have no idea if it's safer here or beneath the seas.",
"description": "Created with the exploration of the deep sea in mind Cecaelia are hybridized from cephalopod and fish dna. While you were mostly spared from the corporate wars by your scientific proclivities, the polite niceties of the surface are mostly forgotten underwater. You were on dry land when the Cataclysm occurred and you have no idea if it's safer here or beneath the seas.",
"points": 7,
"skills": [
{ "level": 4, "name": "chemistry" },

View File

@ -6,7 +6,7 @@
"name": { "str_sp": "tiny pistol ammo, ball" },
"ammo_type": "ammo_pistol_tiny",
"casing": "pistol_tiny_casing",
"description": "Miniscule pistol and rifle ammunition, for target practice or turn of the century sidearms. Sold in great quantities preceding the riots. 'Ball' is an old term for full metal jacketed bullets which offer reduced fouling, better reliability, and slightly improved penetration compared to plain lead.",
"description": "Minuscule pistol and rifle ammunition, for target practice or turn of the century sidearms. Sold in great quantities preceding the riots. 'Ball' is an old term for full metal jacketed bullets which offer reduced fouling, better reliability, and slightly improved penetration compared to plain lead.",
"relative": { "damage": { "damage_type": "bullet", "amount": -2, "armor_penetration": 3 } }
},
{
@ -14,7 +14,7 @@
"type": "AMMO",
"copy-from": "tiny_pistol_ball",
"name": { "str_sp": "tiny pistol ammo, JHP" },
"description": "Miniscule pistol and rifle ammunition, for target practice or turn of the century sidearms. Sold in great quantities preceding the riots. Jacketed Hollow Points are defensive/duty projectiles that are more destructive to tissue than plain ball ammunition, and slightly reduce overpenetration concerns.",
"description": "Minuscule pistol and rifle ammunition, for target practice or turn of the century sidearms. Sold in great quantities preceding the riots. Jacketed Hollow Points are defensive/duty projectiles that are more destructive to tissue than plain ball ammunition, and slightly reduce overpenetration concerns.",
"relative": { "damage": { "damage_type": "bullet", "amount": 2, "armor_penetration": -3 } }
},
{

View File

@ -1,6 +1,6 @@
### Compatibility with screen readers
There are people who uses screen readers to play Cataclysm DDA. In order for screen
There are people who use screen readers to play Cataclysm DDA. In order for screen
readers to announce the most important information in a UI, the terminal cursor has
to be placed at the correct location. This information may be text such as selected
item names in a list, etc, and the cursor has to be placed exactly at the beginning
@ -36,4 +36,4 @@ wrefresh( win );
As shown in the above example, it is preferable to record the intended cursor
position in a variable when the text is printed, and move the cursor later using
the variable to ensure consisitency.
the variable to ensure consistency.

View File

@ -8,7 +8,7 @@ Basecamps leverage many existing aspects of JSON data such as recipes and mapgen
A basecamp upgrade path is a series of basecamp upgrade missions that upgrade the camp. Upgrade missions are generally performed sequentially, but there is an option to have them branch. Branched missions optionally can have further missions that require missions from other branches.
Bascamp upgrade paths are defined by several related files:
Basecamp upgrade paths are defined by several related files:
* The recipe JSONs that define what the material, tool, and skill requirements to perform an upgrade mission and the blueprint mapgen, blueprint requirements, blueprint provides, and blueprint resources associated with each upgrade mission.
* The mapgen_update JSONs that define how the map will change when the upgrade mission is complete. These may include shared instances of nested mapgen, such a standard room or tent.
* The recipe_group JSONs that define what recipes can be crafted after completing the upgrade mission and what camps and expansions are available.
@ -26,7 +26,7 @@ New field | Description
`"blueprint_resources"` | array of `"itype_id"`s. Items with those ids will be added to the camp inventory after the upgrade mission is completed and can be used for crafting or additional upgrade missions.
### blueprint requires, provides, and excludes
blueprint requires, blueprint provides, and blueprint exlcudes are abstract concepts or flags that an upgrade mission requires to start, or that are provided by a previous upgrade mission to satisfy the blueprint requirements of a current upgrade mission, or that prevent an upgrade mission from being available. Each one has an `"id"` and an `"amount"`. Multiple requires, provides, or excludes with the same `"id"` sum their `"amount"` if they're on the same basecamp expansion.
blueprint requires, blueprint provides, and blueprint excludes are abstract concepts or flags that an upgrade mission requires to start, or that are provided by a previous upgrade mission to satisfy the blueprint requirements of a current upgrade mission, or that prevent an upgrade mission from being available. Each one has an `"id"` and an `"amount"`. Multiple requires, provides, or excludes with the same `"id"` sum their `"amount"` if they're on the same basecamp expansion.
Every upgrade mission has its recipe `"result"` as a blueprint_provides and a blueprint_excludes, so upgrade missions will automatically prevent themselves from being repeatable.

View File

@ -302,7 +302,7 @@ and hurt effects triggering. "harmful_cough" means that the coughs caused by thi
### Flags
"EFFECT_INVISIBLE" Character affected by an effect with this flag are invisible.
"EFFECT_IMPEDING" Character affected by an effect with this flag can't move until they break free from the effect. Breaking free requires a strenght check: `x_in_y( get_str(), 6 * get_effect_int( eff_id )`
"EFFECT_IMPEDING" Character affected by an effect with this flag can't move until they break free from the effect. Breaking free requires a strength check: `x_in_y( get_str(), 6 * get_effect_int( eff_id )`
### Effect effects
```C++

View File

@ -49,7 +49,7 @@ Field | Meaning
`"id"` | string, unique faction id
`"name"` | string, the faction's common name
`"likes_u"` | integer, the faction's starting opinion of the player. `"likes_u"` can be increased or decreased in play. If it goes below -10, members of the faction will be hostile.
`"respects_u"` | integer, the faction's starting opinionof the player. Has no meaningful effect in game and may be removed in the future.
`"respects_u"` | integer, the faction's starting opinion of the player. Has no meaningful effect in game and may be removed in the future.
`"known_by_u"` | boolean, whether the player has met members of the faction. Can be changed in play. Unknown factions will not be displayed in the faction menu.
`"size"` | integer, an approximate count of the members of the faction. Has no effect in play currently.
`"power"` | integer, an approximation of the faction's power. Has no effect in play currently.

View File

@ -112,14 +112,14 @@ Number of moves is calculated as attack speed * ( number of misses + number of n
Damage per second against a particular monster is total damage * 100 / number of moves (100 for the 100 moves/second). Overall dps is the average of the dps against the three reference monsters.
### Critical hits
A double critical can occcur when a second hit roll is made against 1.5 * the monster's dodge. Double critical hits have a higher chance of occurring than normal critical hits. For each hit, the chance of achieving either a double critical hit or a normal critical hit is calculated, and then if a random number is less than the critical chance, the critical occurs. Both double and normal critical hits have the same effect, but the chance of them occurring is different.
A double critical can occur when a second hit roll is made against 1.5 * the monster's dodge. Double critical hits have a higher chance of occurring than normal critical hits. For each hit, the chance of achieving either a double critical hit or a normal critical hit is calculated, and then if a random number is less than the critical chance, the critical occurs. Both double and normal critical hits have the same effect, but the chance of them occurring is different.
**Note** The critical hit system is stupid and complicated and produces weird results. Double critical hits should have a chance of occuring when the original hit roll is more than 1 standard deviation above the mean, which is simple and faster to calculate than the current system.
**Note** The critical hit system is stupid and complicated and produces weird results. Double critical hits should have a chance of occurring when the original hit roll is more than 1 standard deviation above the mean, which is simple and faster to calculate than the current system.
### Other factors
Reach is worth +20% at reach 2, +35% at reach 3.
A weapon that is usuable by a known martial art is worth +50%.
A weapon that is usable by a known martial art is worth +50%.
### Weapon tiers
Relative value should put the weapon into one of those categories:

View File

@ -260,7 +260,7 @@ The first entry is using that explicit symbol placement technique. The end ent
```
Our vehicle happens to be a swivel chair using explicit symbol placement.
This next example uses vehicle_groups and x,y placement. It also includes rotation and status. The rotation is which direction the vehicle will spawn on the map, and that status is its overall condition. Fuel is pretty self explanatory. Always test your vehcile spawns in game, they can be rather picky in their placement and the rotation doesn't really match what you'd expect the numbers to mean. The 0,0 point of vehicles can vary so you'll have to experiment to get the spawns in the right spots, especially in tight spaces.
This next example uses vehicle_groups and x,y placement. It also includes rotation and status. The rotation is which direction the vehicle will spawn on the map, and that status is its overall condition. Fuel is pretty self explanatory. Always test your vehicle spawns in game, they can be rather picky in their placement and the rotation doesn't really match what you'd expect the numbers to mean. The 0,0 point of vehicles can vary so you'll have to experiment to get the spawns in the right spots, especially in tight spaces.
```
"place_vehicles": [
@ -492,7 +492,7 @@ You need one entry per mapgen ID:
4. `"name"` how the name displays on the overmap.
5. `"sym"` the symbol displayed on the overmap. If left out, the carrots will be used `v<>^`
6. `"color"` color for overmap symbol.
7. `"mondesntiy"` sets the default monster density for this overmap tile. You'll use this for general zombie spawns and reserve the mapgen monster entries for special spanwns for that location (e.g. a pet store's pets).
7. `"mondesntiy"` sets the default monster density for this overmap tile. You'll use this for general zombie spawns and reserve the mapgen monster entries for special spawns for that location (e.g. a pet store's pets).
8. `"extend"` many of these flags will be used by NPCs in the future for their AI, try to add flags appropriate for your location. Others further define the mapgen, like having sidewalks generate.
For further information see: [Overmap Terrain section of doc/OVERMAP.md](https://github.com/CleverRaven/Cataclysm-DDA/blob/master/doc/OVERMAP.md#overmap-terrain).

View File

@ -367,7 +367,7 @@ Some armor flags, such as `WATCH` and `ALARMCLOCK` are compatible with other ite
- ```PHEROMONE``` Makes zombies ignore you.
- ```PICK_LOCK``` Pick a lock on a door. Speed and success chance are determined by skill, 'LOCKPICK' item quality and 'PERFECT_LOCKPICK' item flag
- ```PICKAXE``` Does nothing but berate you for having it (I'm serious).
- ```PLACE_RANDOMLY``` This is very much like the flag in the manhack iuse, it prevents the item from querying the player as to where they want the monster unloaded to, and instead choses randomly.
- ```PLACE_RANDOMLY``` This is very much like the flag in the manhack iuse, it prevents the item from querying the player as to where they want the monster unloaded to, and instead chooses randomly.
- ```PORTABLE_GAME``` Play games.
- ```PORTAL``` Create portal traps.
- ```RADIO_OFF``` Turn the radio on.
@ -962,7 +962,7 @@ Other monster flags.
- ```KEENNOSE``` Keen sense of smell.
- ```LARVA``` Creature is a larva. Currently used for gib and blood handling.
- ```LEATHER``` May produce leather when butchered.
- ```LOUDMOVES``` Mkes move noises as if ~2 sizes louder, even if flying.
- ```LOUDMOVES``` Makes move noises as if ~2 sizes louder, even if flying.
- ```MECH_RECON_VISION``` This mech grants you night-vision and enhanced overmap sight radius when piloted.
- ```MECH_DEFENSIVE``` This mech can protect you thoroughly when piloted.
- ```MILITARY_MECH``` Is a military-grade mech.
@ -1222,7 +1222,7 @@ These branches are also the valid entries for the categories of `dreams` in `dre
- ```BLIND_EASY``` Easy to craft with little to no light.
- ```BLIND_HARD``` Possible to craft with little to no light, but difficult.
- ```SECRET``` Not automatically learned at character creation time based on high skill levels.
- ```UNCRAFT_BY_QUANTITY``` Supresses the per-charge handling of uncraft recipes.
- ```UNCRAFT_BY_QUANTITY``` Suppresses the per-charge handling of uncraft recipes.
- ```UNCRAFT_LIQUIDS_CONTAINED``` Spawn liquid items in its default container.
- ```UNCRAFT_SINGLE_CHARGE``` Lists returned amounts for one charge of an item that is counted by charges.
- ```NEED_FULL_MAGAZINE``` If this recipe requires magazines, it needs one that is full.
@ -1314,7 +1314,7 @@ Melee flags are fully compatible with tool flags, and vice versa.
These flags **do not apply to item types**.
Those flags are added by the game code to specific items (for example, that specific thingamabob, not *all* thingamabob). These flags are **not** assigned in JSON by content contributors, they are set programatically.
Those flags are added by the game code to specific items (for example, that specific thingamabob, not *all* thingamabob). These flags are **not** assigned in JSON by content contributors, they are set programmatically.
- ```COLD``` Item is cold (see EATEN_COLD).
- ```DIRTY``` Item (liquid) was dropped on the ground and is now irreparably dirty.
@ -1400,7 +1400,7 @@ Those flags are added by the game code to specific items (for example, that spec
- ```NOINSTALL``` Cannot be installed.
- ```NO_INSTALL_PLAYER``` Cannot be installed by a player, but can be installed on vehicles.
- ```NO_MODIFY_VEHICLE``` Installing a part with this flag on a vehicle will mean that it can no longer be modified. Parts with this flag should not be installable by players.
- ```NO_UNINSTALL``` Cannot be unintalled
- ```NO_UNINSTALL``` Cannot be uninstalled
- ```NO_REPAIR``` Cannot be repaired
- ```NO_JACK```
- ```OBSTACLE``` Cannot walk through part, unless the part is also ```OPENABLE```.
@ -1427,7 +1427,7 @@ Those flags are added by the game code to specific items (for example, that spec
- ```SEAT``` A seat where the player can sit or sleep.
- ```SECURITY```
- ```SHARP``` Striking a monster with this part does cutting damage instead of bashing damage, and prevents stunning the monster.
- ```SHOCK_ABSORBER``` This part protects non-frame parts on the same tile from shock damage from collisions. It doesn't provide protect against diret impacts or other attacks.
- ```SHOCK_ABSORBER``` This part protects non-frame parts on the same tile from shock damage from collisions. It doesn't provide protect against direct impacts or other attacks.
- ```SIMPLE_PART``` This part can be installed or removed from that otherwise prevent modification.
- ```SMASH_REMOVE``` When you remove this part, instead of getting the item back, you will get the bash results.
- ```SOLAR_PANEL``` Recharges vehicle batteries when exposed to sunlight. Has a 1 in 4 chance of being broken on car generation.
@ -1488,8 +1488,8 @@ General fault flag:
Vehicle fault flags:
- ```NO_ALTERNATOR_CHARGE``` The alternator connected to this engine does not work.
- ```BAD_COLD_START``` The engine starts as if the themperature was 20 F colder. Does not stack with multiples of itself.
- ```IMMOBILIZER``` Prevents engine from starting and makes it beeb.
- ```BAD_COLD_START``` The engine starts as if the temperature was 20 F colder. Does not stack with multiples of itself.
- ```IMMOBILIZER``` Prevents engine from starting and makes it beep.
- ```BAD_FUEL_PUMP``` Prevents engine from starting and makes it stutter.
- ```BAD_STARTER``` Prevents engine from starting and makes click noise.
- ```DOUBLE_FUEL_CONSUMPTION``` Doubles fuel consumption of the engine. Does not stack with multiples of itself.

View File

@ -174,7 +174,7 @@ Use the `Home` key to return to the top.
- [Field types](#-field-types-)
# Introduction
This document describes the contents of the json files used in Cataclysm: Dark Days Ahead. You are probably reading this if you want to add or change content of Catacysm: Dark Days Ahead and need to learn more about what to find where and what each file and property does.
This document describes the contents of the json files used in Cataclysm: Dark Days Ahead. You are probably reading this if you want to add or change content of Cataclysm: Dark Days Ahead and need to learn more about what to find where and what each file and property does.
## Overall structure
The game data is distributed amongst many JSON files in `data`. Most of the
@ -578,11 +578,11 @@ For information about tools with option to export ASCII art in format ready to b
| hot_morale_mod | (_optional_) Mood effect of being too hot on this part. (default: `0`)
| cold_morale_mod | (_optional_) Mood effect of being too cold on this part. (default: `0`)
| squeamish_penalty | (_optional_) Mood effect of wearing filthy clothing on this part. (default: `0`)
| stat_hp_mods | (_optional_) Values modifiying hp_max of this part following this formula: `hp_max += int_mod*int_max + dex_mod*dex_max + str_mod*str_max + per_mod*per_max + health_mod*get_healthy()` with X_max being the unmodifed value of the X stat and get_healthy() being the hidden health stat of the character.
| stat_hp_mods | (_optional_) Values modifying hp_max of this part following this formula: `hp_max += int_mod*int_max + dex_mod*dex_max + str_mod*str_max + per_mod*per_max + health_mod*get_healthy()` with X_max being the unmodified value of the X stat and get_healthy() being the hidden health stat of the character.
| bionic_slots | (_optional_) How many bionic slots does this part have.
| is_limb | (_optional_) Is this bodypart a limb. (default: `false`)
| smash_message | (_optional_) The message displayed when using that part to smash something.
| smash_efficiency | (_optional_) Modifier applyed to your smashing strength when using this part to smash terrain or furniture unarmed. (default: `0.5`)
| smash_efficiency | (_optional_) Modifier applied to your smashing strength when using this part to smash terrain or furniture unarmed. (default: `0.5`)
```C++
{
@ -649,9 +649,9 @@ For information about tools with option to export ASCII art in format ready to b
| stat_bonus | (_optional_) List of passive stat bonus. Stat are designated as follow: "DEX", "INT", "STR", "PER".
| enchantments | (_optional_) List of enchantments applied by this CBM (see MAGIC.md for instructions on enchantment. NB: enchantments are not necessarily magic.)
| learned_spells | (_optional_) Map of {spell:level} you gain when installing this CBM, and lose when you uninstall this CBM. Spell classes are automatically gained.
| learned_proficiencies | (_optional_) Array of proficiency ids you gain when installing this CBM, and lose when unintalling
| installation_requirement | (_optional_) Requirment id pointing to a requirment defining the tools and componentsnt necessary to install this CBM.
| vitamin_absorb_mod | (_optional_) Modifier to vitamin absorbtion, affects all vitamins. (default: `1.0`)
| learned_proficiencies | (_optional_) Array of proficiency ids you gain when installing this CBM, and lose when uninstalling
| installation_requirement | (_optional_) Requirement id pointing to a requirement defining the tools and components necessary to install this CBM.
| vitamin_absorb_mod | (_optional_) Modifier to vitamin absorption, affects all vitamins. (default: `1.0`)
```C++
{
@ -964,7 +964,7 @@ A Mutation Category identifies a set of interrelated mutations that as a whole e
| `iv_sound_id` | The id of a sound clip to play depicting the noise made by the character.
| `iv_sound_variant` | The id of a variant clip to play depicting the noise made by the character.
| `iv_noise` | The volume of the noise the character makes.
| `iv_sleep` | A flag indicating that the player will involuntarally sleep after taking the matching mutation serum.
| `iv_sleep` | A flag indicating that the player will involuntarily sleep after taking the matching mutation serum.
| `iv_sleep_message` | The message to display notifying the player that their character has fallen sleep.
| `iv_sleep_dur` | The duration of the involuntary sleep in seconds.
| `memorial_message` | The memorial message to display when a character crosses the associated mutation threshold.
@ -1414,7 +1414,7 @@ These overlap because both list the high-quality lens.
A small amount of overlap (such as the above) can be handled, but if you have
too many component lists which overlap in too many ways, then you may see an
error during recipe finalization that your recipe is too complex. In this
case, the game may not be able to corectly predict whether it can be crafted.
case, the game may not be able to correctly predict whether it can be crafted.
To work around this issue, if you do not wish to simplify the recipe
requirements, then you can split your recipe into multiple steps. For
@ -3844,13 +3844,13 @@ Setting of sprite sheets. Same as `tiles-new` field in `tile_config`. Sprite fil
"bash": {
"str_min": 1, // lower bracket of bashing damage required to bash
"str_max": 3, // higher bracket
"sound_vol": 2, // noise made when succesfully bashing the field
"sound_vol": 2, // noise made when successfully bashing the field
"sound_fail_vol": 2, // noise made when failing to bash the field
"sound": "shwip", // sound on success
"sound_fail": "shwomp", // sound on failure
"msg_success": "You brush the gum web aside.", // message on success
"move_cost": 120, // how many moves it costs to succesfully bash that field (default: 100)
"items": [ // item dropped upon succesful bashing
"move_cost": 120, // how many moves it costs to successfully bash that field (default: 100)
"items": [ // item dropped upon successful bashing
{ "item": "2x4", "count": [ 5, 8 ] },
{ "item": "nail", "charges": [ 6, 8 ] },
{ "item": "splinter", "count": [ 3, 6 ] },

View File

@ -92,11 +92,11 @@ To find out if a types supports copy-from, you need to know if it has implemente
* In the search results you find [gates.cpp](https://github.com/CleverRaven/Cataclysm-DDA/tree/master/src/gates.cpp). open it.
* In gates.cpp, find the generic_factory line, it looks like this: `generic_factory<gate_data> gates_data( "gate type", "handle", "other_handles" );`
* Since the generic_factory line is present, you can now conclude that it supports copy-from.
* If you don't find generic_factoy present, it does not support copy-from, as is the case for type vitamin (repeat the above steps and find that [vitamin.cpp](https://github.com/CleverRaven/Cataclysm-DDA/tree/master/src/vitamin.cpp) does not contain generic_factoy)
* If you don't find generic_factory present, it does not support copy-from, as is the case for type vitamin (repeat the above steps and find that [vitamin.cpp](https://github.com/CleverRaven/Cataclysm-DDA/tree/master/src/vitamin.cpp) does not contain generic_factory)
## Guidelines
Contributors are encouraged to not overuse copy-from, as it can decrease the human readability of the JSON. Chained inheritance is especially likely to become unweildy, essentially recreating the level of redundancy we'd like to eliminate.
Contributors are encouraged to not overuse copy-from, as it can decrease the human readability of the JSON. Chained inheritance is especially likely to become unwieldy, essentially recreating the level of redundancy we'd like to eliminate.
In general, there are two situations where copy-from should be used in the core game:

View File

@ -108,7 +108,7 @@ Below is a table of currently implemented effects, along with special rules for
| `vomit` | any creature within its area of effect will instantly vomit, if it's able to do so.
| `timed_event` | adds a timed event to the player only. valid timed events: "help", "wanted", "robot_attack", "spawn_wyrms", "amigara", "roots_die", "temple_open", "temple_flood", "temple_spawn", "dim", "artifact_light" NOTE: This was added only for artifact active effects. support is limited, use at your own risk.
| `explosion` | an explosion is centered on the target, with power damage() and factor aoe()/10
| `flashbang` | a flashbang effect is centered on the target, with poewr damage() and factor aoe()/10
| `flashbang` | a flashbang effect is centered on the target, with power damage() and factor aoe()/10
| `mod_moves` | adds damage() moves to the target. can be negative to "freeze" the target for that amount of time
| `map` | maps the overmap centered on the player out to a radius of aoe()
| `morale` | gives a morale effect to all npcs or avatar within aoe, with value damage(). decay_start is duration() / 10.

View File

@ -497,10 +497,10 @@ be used by `map::place_spawns`. Each monster generated from the monster group wi
location within the rectangle. The values in the above example will produce a rectangle for `map::place_spawns` from (
13, 15 ) to ( 15, 15 ) inclusive.
The optional "density" is a floating-point multipier to the "chance" value. If the result is bigger than 100% it
gurantees one spawn point for every 100% and the rest is evaluated by chance (one added or not). Then the monsters are
The optional "density" is a floating-point multiplier to the "chance" value. If the result is bigger than 100% it
guarantees one spawn point for every 100% and the rest is evaluated by chance (one added or not). Then the monsters are
spawned according to their spawn-point cost "cost_multiplier" defined in the monster groups. Additionally all overmap
densities within a square of raduis 3 (7x7 around player - exact value in mapgen.cpp/MON_RADIUS macro) are added to
densities within a square of radius 3 (7x7 around player - exact value in mapgen.cpp/MON_RADIUS macro) are added to
this. The "pack_size" modifier in monstergroups is a random multiplier to the rolled spawn point amount.
@ -569,7 +569,7 @@ Example:
]
```
This places "mon_secubot" at random coordinate (7-18, 7-18). The monster is placed with 30% probablity. The placement is
This places "mon_secubot" at random coordinate (7-18, 7-18). The monster is placed with 30% probability. The placement is
repeated by random number of times `[1-3]`. The monster will spawn with 20-30 5.56x45mm rounds.
@ -681,7 +681,7 @@ Example with mapping (the characters `"O"` and `";"` should appear in the rows a
}
```
The amount of water to be placed in toilets is optional, an empty entry is therefor completely valid.
The amount of water to be placed in toilets is optional, an empty entry is therefore completely valid.
Example with coordinates:

View File

@ -92,7 +92,7 @@ For "MGOAL_KILL_MONSTER_SPEC" and "MGOAL_KILL_MONSTER_TYPE", sets the number of
the player's current kill count that must be killed to complete the mission.
### goal_condition
For "MGOAL_CONDITION", defines the condition that must be satisified for the mission to be considered complete.
For "MGOAL_CONDITION", defines the condition that must be satisfied for the mission to be considered complete.
Conditions are explained in more detail in [NPCs.md](./NPCs.md), and are used here in exactly the same way.
### dialogue
@ -196,7 +196,7 @@ overmap special definition, respecting allowed terrains, distance from cities, r
and so on. Consequently, the more restrictive the rules, the less likely this placement will
succeed (as it is competing for space with already-spawned specials).
`om_terrain_replace` is only relevent if the `om_terrain` is not part of an overmap special.
`om_terrain_replace` is only relevant if the `om_terrain` is not part of an overmap special.
This value is used if the `om_terrain` cannot be found, and will be used as an alternative target
which will then be replaced with the `om_terrain` value.

View File

@ -49,8 +49,8 @@ Mandatory. The color shown on the panels when this mode is selected.
### `symbol_color`
Mandatory. The color shown in curses when your character is in this move mode.
### `extertion_level`
Mandatory. What extertion level this move mode will put you into. The options are, from least to most exercise:
### `exertion_level`
Mandatory. What exertion level this move mode will put you into. The options are, from least to most exercise:
```
NO_EXERCISE
LIGHT_EXERCISE

View File

@ -499,7 +499,7 @@ Effect | Description
`npc_gets_item_to_use` | Allow your character to select an item from your character's inventory and transfer it to the NPC's inventory. The NPC will attempt to wield it and will not accept it if it is too heavy or is an inferior weapon to what they are currently using, and will set a reason that can be referenced in a future dynamic line with `"use_reason"`.
`u_buy_item: item_string`, (*optional* `cost: cost_num`, *optional* `count: count_num`, *optional* `container: container_string`) | The NPC will give your character the item or `count_num` copies of the item, contained in container, and will subtract `cost_num` from `op_of_u.owed` if specified. If the `op_o_u.owed` is less than `cost_num`, the trade window will open and the player will have to trade to make up the difference; the NPC will not give the player the item unless `cost_num` is satisfied.<br/>If cost isn't present, the NPC gives your character the item at no charge.
`u_sell_item: item_string`, (*optional* `cost: cost_num`, *optional* `count: count_num`) | Your character will give the NPC the item or `count_num` copies of the item, and will add `cost_num` to the NPC's `op_of_u.owed` if specified.<br/>If cost isn't present, the your character gives the NPC the item at no charge.<br/>This effect will fail if you do not have at least `count_num` copies of the item, so it should be checked with `u_has_items`.
`u_bulk_trade_accept`<br/>`npc_bulk_trade_accept` | Only valid after a `repeat_response`. The player trades all instances of the item from the `repeat_response` with the NPC. For `u_bulk_trade_accept`, the player loses the items from their inventory and gains the same value of the NPC's faction currecy; for `npc_bulk_trade_accept`, the player gains the items from the NPC's inventory and loses the same value of the NPC's faction currency. If there is remaining value, or the NPC doesn't have a faction currency, the remainder goes into the NPC's `op_of_u.owed`.
`u_bulk_trade_accept`<br/>`npc_bulk_trade_accept` | Only valid after a `repeat_response`. The player trades all instances of the item from the `repeat_response` with the NPC. For `u_bulk_trade_accept`, the player loses the items from their inventory and gains the same value of the NPC's faction currency; for `npc_bulk_trade_accept`, the player gains the items from the NPC's inventory and loses the same value of the NPC's faction currency. If there is remaining value, or the NPC doesn't have a faction currency, the remainder goes into the NPC's `op_of_u.owed`.
`u_bulk_donate`<br/>`npc_bulk_donate` | Only valid after a `repeat_response`. The player or NPC transfers all instances of the item from the `repeat_response`. For `u_bulk_donate`, the player loses the items from their inventory and the NPC gains them; for `npc_bulk_donate`, the player gains the items from the NPC's inventory and the NPC loses them.
`u_spend_cash: cost_num` | Remove `cost_num` from your character's cash. Negative values means your character gains cash. *deprecated* NPCs should not deal in e-cash anymore, only personal debts and items.
`add_debt: mod_list` | Increases the NPC's debt to the player by the values in the `mod_list`.<br/>The following would increase the NPC's debt to the player by 1500x the NPC's altruism and 1000x the NPC's opinion of the player's value: `{ "effect": { "add_debt": [ [ "ALTRUISM", 3 ], [ "VALUE", 2 ], [ "TOTAL", 500 ] ] } }`
@ -532,7 +532,7 @@ Effect | Description
`stranger_neutral` | Changes the NPC's attitude to neutral.
`start_mugging` | The NPC will approach your character and steal from your character, attacking if your character resists.
`lead_to_safety` | The NPC will gain the LEAD attitude and give your character the mission of reaching safety.
`start_training` | The NPC will train your character in a skill or martial art. NOTE: the code currently requires that you initiate training by directing the player through `"topic": "TALK_TRAIN"` where the thing to be trained is selected. Initiating trainign outside of "TALK_TRAIN" will give an error.
`start_training` | The NPC will train your character in a skill or martial art. NOTE: the code currently requires that you initiate training by directing the player through `"topic": "TALK_TRAIN"` where the thing to be trained is selected. Initiating training outside of "TALK_TRAIN" will give an error.
`companion_mission: role_string` | The NPC will offer you a list of missions for your allied NPCs, depending on the NPC's role.
`basecamp_mission` | The NPC will offer you a list of missions for your allied NPCs, depending on the local basecamp.
`bionic_install` | The NPC installs a bionic from your character's inventory onto your character, using very high skill, and charging you according to the operation's difficulty.

View File

@ -155,7 +155,7 @@ That makes sense for two-dimensional `point` types, but how does it handle
horizontal dimensions, so `z` values are unchanged by `project_to` and
`project_remain`. However, for `project_remain` we don't want to duplicate the
z-coordinate in both parts of the result, so you must choose exactly one to be
a `tripoint`. In the example above, z-coodinates do not have much meaning at
a `tripoint`. In the example above, z-coordinates do not have much meaning at
the overmap scale, so you probably want the z-coordinate in
`omt_within_overmap`. Than can be done as follows:

View File

@ -7,7 +7,7 @@
"id": "prof_knapping",
"type": "proficiency",
"name": { "str": "Knapping" },
"desription": "The ability to turn stones into usable tools.",
"description": "The ability to turn stones into usable tools.",
"can_learn": true,
"time_to_learn": "10 h",
"required_proficiencies": [ "prof_foo" ]

View File

@ -24,7 +24,7 @@ Note that for the default region, all attributes and sections are required.
| Identifier | Description |
| ----------------------- | ------------------------------------------------------------------ |
| `type` | Type identifier. Must be "region_settings". |
| `id` | Unique identfier for this region. |
| `id` | Unique identifier for this region. |
| `default_oter` | Default overmap terrain for this region. |
| `default_groundcover` | List of terrain types and weights applied as default ground cover. |
@ -564,7 +564,7 @@ those values which should be changed.
| Identifier | Description |
| ---------- | ------------------------------------------------------------------------------------------- |
| `type` | Type identifier. Must be "region_overlay". |
| `id` | Unique identfier for this region overlay. |
| `id` | Unique identifier for this region overlay. |
| `regions` | A list of regions to which this overlay should be applied. "all" will apply to all regions. |
All additional fields and sections are as defined for a `region_overlay`.
@ -581,4 +581,4 @@ All additional fields and sections are as defined for a `region_overlay`.
}
}
}]
```
```

View File

@ -179,7 +179,7 @@ Where id describes the id of the sound effect, and a list of variants separated
# player death and end-game sounds
* `clean_up_at_end game_over|death_m|death_f`
# variuos bionic sounds
# various bionic sounds
* `bionic elec_discharge|elec_crackle_low|elec_crackle_med|elec_crackle_high|elec_blast|elec_blast_muffled|acid_discharge|pixelated`
* `bionic bio_resonator|bio_hydraulics|`
@ -198,7 +198,7 @@ Where id describes the id of the sound effect, and a list of variants separated
# various shouts and screams
* `shout default|scream|scream_tortured|roar|squeak|shriek|wail|howl`
# speach, it is currently linked with either item or monster id, or is special `NPC` or `NPC_loud`
# speech, it is currently linked with either item or monster id, or is special `NPC` or `NPC_loud`
# TODO: full vocalization of speech.json
* `speech <item_id>` # examples: talking_doll, creepy_doll, Granade,
* `speech <monster_id>` # examples: eyebot, minitank, mi-go, many robots

View File

@ -126,7 +126,7 @@ A special is `"filler"` which should be `true` if present. If a tilesheet is de
## Legacy tilesets
### tilesheets
Each tilesheet contains 1 or more sprites with the same width and height. Each tilesheet contains one or more rows of exactly 16 sprites. Sprite index 0 is special and the first sprite of the first tilesheet in a tileset should be blank. Indices run sequentially through each sheet and continue incrementing for each new sheet without reseting, so index 32 is the first sprite in the third row of the first sheet. If the first sheet has 320 sprites in it, index 352 would be the first sprite of the third row of the second sheet.
Each tilesheet contains 1 or more sprites with the same width and height. Each tilesheet contains one or more rows of exactly 16 sprites. Sprite index 0 is special and the first sprite of the first tilesheet in a tileset should be blank. Indices run sequentially through each sheet and continue incrementing for each new sheet without resetting, so index 32 is the first sprite in the third row of the first sheet. If the first sheet has 320 sprites in it, index 352 would be the first sprite of the third row of the second sheet.
### `tile_config`
Each legacy tileset has a `tile_config.json` describing how to map the contents of a sprite sheet to various tile identifiers, different orientations, etc. The ordering of the overlays used for displaying mutations can be controlled as well. The ordering can be used to override the default ordering provided in `mutation_ordering.json`. Example:

View File

@ -38,7 +38,7 @@ Vehicle prototypes do not currently accept copy-from
.* Important! *. Vehicle parts must be defined in the same order you would install them in the game (ie, frames and mount points first). You also cannot break the normal rules of installation (you can't stack non-stackable part flags).
### Parts list
The part list contains an arbitary number of lines. Each line is of the form:
The part list contains an arbitrary number of lines. Each line is of the form:
{ "x": X, "y": Y, "part": PARTID, ... }
or
{ "x": X, "y": Y, "parts": [ PARTID1, ... ] }

View File

@ -25,10 +25,10 @@ Each weather type is a type of weather that occurs, its effects and what causes
| `sun_intensity` | Strength of the sun. Valid values are: none, light, normal, and high |
| `duration_min` | Optional, the lower bound on the amount of time this weather can last. Defaults to 5 minutes. Unless time_between_min and time_between_max are set the weather can happen again as soon as it ends. |
| `duration_max` | Optional, the upper bound on the amount of time this weather can last. Defaults to 5 minutes. Unless time_between_min and time_between_max are set the weather can happen again soon as it ends. |
| `time_between_min` | Optional, the lower bounds of the amount of time that will be guranteed to pass before this weather happens again. Defaults to 0. |
| `time_between_max` | Optional, the upper bounds of the amount of time that will be guranteed to pass before this weather happens again. Defaults to 0. |
| `time_between_min` | Optional, the lower bounds of the amount of time that will be guaranteed to pass before this weather happens again. Defaults to 0. |
| `time_between_max` | Optional, the upper bounds of the amount of time that will be guaranteed to pass before this weather happens again. Defaults to 0. |
| `weather_animation` | Optional, Information controlling weather animations. Members: factor, color and glyph |
| `effects` | Array for the effects the weather has. Descibed in detail below
| `effects` | Array for the effects the weather has. Described in detail below
| `requirements` | Optional, is what determines what weather it is. All members are optional.
When checking what weather it is it loops through the entries in order and uses the last one to succeed. |
@ -103,8 +103,8 @@ Things that weather can cause to happen.
| `sound_effect` | Optional: Name of sound effect to play |
| `sound_message` | Optional: Message describing what you hear for this, will not display if deaf. |
| `must_be_outside` | Whether the effect only happens while you are outside. |
| `one_in_chance` | Optional: The chance of the event occuring is 1 in this value, if blank will always happen. |
| `time_between` | Optional: The time between instances of this effect occuring. If both this and one_in_chance are set will only happen when both are true. |
| `one_in_chance` | Optional: The chance of the event occurring is 1 in this value, if blank will always happen. |
| `time_between` | Optional: The time between instances of this effect occurring. If both this and one_in_chance are set will only happen when both are true. |
| `lightning` | Optional: Causes the world be bright at night and supercharge monster electric fields. |
| `rain_proof` | Optional: If rainproof, resistant gear will help against this |
| `pain_max` | Optional: If there is a threshold of pain at which this will stop happening. |

View File

@ -7,7 +7,7 @@ This is a complicated spreadsheet, with a lot of moving parts. The following are
Raw was the initial data dump, taken from some October 2019 version of the 0.D experimental using mlangsdorf's usual mods (hence all the Blazemod stuff). Raw was slightly annoyed with some extra categories:
* Weapon Class - this is a simple numeric rating. 0 is not a weapon, 1 is an explosive device, 2 is a ranged weapon or gun, 3 is a tool that makes a poor weapon like a cooking pot, 4 is a helmet, 5 is a tool that makes a good weapon like a sledgehammer, 6 is an improvised or fake weapon, and 7 is an actual dedicated weapon
* Category - this is a categorization of items as weapons, to make it easier to compare similar weapons. Melee weapon categories are Ax, Ax2, Club, Club2, Flail, Flail2, Knife, Polearm, Spear, Staff, Shortsword, Sword, and Sword2. Categories that end with 2 are two-handed weapons.
* Acc - this is a recaluclation of weapon accuracy based on the accuracy factors below, because review of the data showed that a lot of weapons have accuracy values that are not supported by the criteria in GAME_BALANCE.md.
* Acc - this is a recalculation of weapon accuracy based on the accuracy factors below, because review of the data showed that a lot of weapons have accuracy values that are not supported by the criteria in GAME_BALANCE.md.
* Grip - the item's grip, as described in GAME_BALANCE.md
* Leng - the item's leng, as described in GAME_BALANCE.md
* Surf - the item's striking surface, as described in GAME_BALANCE.md.
@ -17,17 +17,17 @@ Raw was the initial data dump, taken from some October 2019 version of the 0.D e
Filter takes the initial data from raw and a weapon class (in cell B1) and filters out items with a lower weapon class to make further analysis easier.
### New Formula
This calculates the new weapon evaluation formaula on the inital stats. This is complicated.
This calculates the new weapon evaluation formula on the initial stats. This is complicated.
The first 7 rows have some header data. The bulk of the calculation starts on row 8.
The weapons were evaluated using a Strength 10, Dexterity 10, Perception 10 survivor with skill 4 in all weapons. The base hit, stat crit, skill crit, bash mult, cut mult, and stab mult values are derived from the relevant bits of src/melee.cpp.
* Columnn A "Average" is the new weapon evaluation value for the weapon, on the edge of the sheet for easy reference.
* Column A "Average" is the new weapon evaluation value for the weapon, on the edge of the sheet for easy reference.
* Columns B-J are the weapon's original stats, taken from the Raw tab via the Filter tab.
* Column K "roll_hit" is sum of the evaluator's base_hit and the weapon's acc.
* Column L "Wpn Crit" is weapon's contribution to critical hits.
* Columns M-N "3 Crit" and "2 Crit" are the chances of a triple and double critical hit occuring, based on skill, accuracy, and stats.
* Columns M-N "3 Crit" and "2 Crit" are the chances of a triple and double critical hit occurring, based on skill, accuracy, and stats.
* Columns O-Q "Average Non-Crit" damage are the weapon's calculated average damage before armor for non-critical hits in each of the 3 categories.
All that is pretty straightforward. The next three blocks are where it gets complicated. Columns S-Z are repeated as AB-AI and AK-AR with different monster stats.
@ -41,11 +41,11 @@ All that is pretty straightforward. The next three blocks are where it gets com
** 100 * ( Dmg * ( Hits - num crits ) / 2 + Crit Dmg * ( num hits ) / 2 + rapid strike Dmg * ( Hits - num crits ) / 2 + rapid strike Crit Dmg * ( num hits ) / 2 ) / ( 1000 - ( hits / 2 ) * Moves + Hits * 0.33 * Moves ) - same as above, but accounting for rapid strike reduced damage and movement cost.
Finally,
* Column AT "Weapon" is a repeat of the weapon name for refernce
* Column AT "Weapon" is a repeat of the weapon name for reference
* Column Au "Value" is the average of columns Z, AI, and AR, multiplied by 1.5 for Reach 2 weapons and 1.75 for Reach 3 weapons.
### New Formula Sorted
This compares the old weapon values versus the values from the new formula, and sorts weapons by decreasing new value by weapon category to make it easier to spot weapons that are unsually good (I'm looking at you, broadsword) or bad for their category.
This compares the old weapon values versus the values from the new formula, and sorts weapons by decreasing new value by weapon category to make it easier to spot weapons that are unusually good (I'm looking at you, broadsword) or bad for their category.
### Proposed Values
This repeats the New Formula tab, except that Columns C-J were copied over and pasted as values, and then adjusted to make the numbers nice.
@ -58,7 +58,7 @@ This repeats the New Formula tab, except that Columns C-J were copied over and p
* Spears got some rough formula for pierce damage based on weight that I can't recover anymore, but in general the differences between spears are more minor than they used to be.
* Polearms got the same rough damage as Ax2 at range 2, but got a separate balance line at range 1 with the raw damage reduced by 0.7. This makes polearms very impressive at range, but slightly worse than quarterstaffs against adjacent targets.
### Poposed Values Sorted
### Proposed Values Sorted
This is another comparison tab like New Formula Sorted, but used the data from Proposed Values.
### Comparison

View File

@ -990,7 +990,7 @@ HTML_STYLESHEET =
# user-defined cascading style sheet that is included after the standard
# style sheets created by doxygen. Using this option one can overrule
# certain style aspects. This is preferred over using HTML_STYLESHEET
# since it does not replace the standard style sheet and is therefor more
# since it does not replace the standard style sheet and is therefore more
# robust against future updates. Doxygen will copy the style sheet file to
# the output directory.

View File

@ -217,7 +217,7 @@ struct achievement_requirement {
}
}
bool satisifed_by( const cata_variant &v ) const {
bool satisfied_by( const cata_variant &v ) const {
switch( comparison ) {
case achievement_comparison::equal:
return v == target;
@ -272,7 +272,7 @@ void achievement::time_bound::deserialize( JsonIn &jin )
if( !( jo.read( "since", epoch_ ) &&
jo.read( "is", comparison_ ) &&
jo.read( "target", period_ ) ) ) {
jo.throw_error( "Mandatory field missing for achievement time_constaint" );
jo.throw_error( "Mandatory field missing for achievement time_constraint" );
}
}
@ -480,7 +480,7 @@ static cata::optional<std::string> text_for_requirement(
const cata_variant &current_value,
achievement_completion ach_completed )
{
bool is_satisfied = req.satisifed_by( current_value );
bool is_satisfied = req.satisfied_by( current_value );
if( !req.is_visible( ach_completed, is_satisfied ) ) {
return cata::nullopt;
}
@ -544,7 +544,7 @@ class requirement_watcher : stat_watcher
void new_value( const cata_variant &new_value, stats_tracker & ) override;
bool is_satisfied( stats_tracker &stats ) {
return requirement_->satisifed_by( requirement_->statistic->value( stats ) );
return requirement_->satisfied_by( requirement_->statistic->value( stats ) );
}
cata::optional<std::string> ui_text() const {
@ -564,7 +564,7 @@ void requirement_watcher::new_value( const cata_variant &new_value, stats_tracke
}
// set_requirement can result in this being deleted, so it must be the last
// thing in this function
tracker_->set_requirement( this, requirement_->satisifed_by( current_value_ ) );
tracker_->set_requirement( this, requirement_->satisfied_by( current_value_ ) );
}
namespace io
@ -615,7 +615,7 @@ std::string achievement_state::ui_text( const achievement *ach ) const
// Next: the requirements
const std::vector<achievement_requirement> &reqs = ach->requirements();
// If these two vectors are of different sizes then the definition must
// have changed since it was complated / failed, so we don't print any
// have changed since it was completed / failed, so we don't print any
// requirements info.
std::vector<cata::optional<std::string>> req_texts;
if( final_values.size() == reqs.size() ) {

View File

@ -174,7 +174,7 @@ class achievement_tracker
// sorted_watchers_ maintains two sets of watchers, categorised by
// whether they watch a satisfied or unsatisfied requirement. This
// allows us to check whether the achievment is met on each new stat
// allows us to check whether the achievement is met on each new stat
// value in O(1) time.
std::array<std::unordered_set<requirement_watcher *>, 2> sorted_watchers_;
};
@ -188,7 +188,7 @@ class achievements_tracker : public event_subscriber
/**
* @param active Whether this achievements_tracker needs to create
* watchers for the stats_tracker to monitor ongoing events. If onle
* watchers for the stats_tracker to monitor ongoing events. If only
* using the achievements_tracker for analyzing past achievements, this
* should not be necessary.
*/

View File

@ -469,7 +469,7 @@ cata::optional<tripoint> choose_direction( const std::string &message,
* the player to indicate valid squares for a given @ref action_id
*
* @param[in] message Message used in assembling the prompt to the player
* @param[in] failure_message Message used if there is no vaild adjacent tile
* @param[in] failure_message Message used if there is no valid adjacent tile
* @param[in] action An action ID to drive the highlighting output
* @param[in] allow_vertical Allows direction vector to have vertical component if true
*/
@ -488,7 +488,7 @@ cata::optional<tripoint> choose_adjacent_highlight( const std::string &message,
* function.
*
* @param[in] message Message used in assembling the prompt to the player
* @param[in] failure_message Message used if there is no vaild adjacent tile
* @param[in] failure_message Message used if there is no valid adjacent tile
* @param[in] allowed A function that will be called to determine if a given location is allowed for selection
* @param[in] allow_vertical Allows direction vector to have vertical component if true
*/

View File

@ -29,7 +29,7 @@ void active_item_cache::remove( const item *it )
void active_item_cache::add( item &it, point location )
{
// If the item is alread in the cache for some reason, don't add a second reference
// If the item is already in the cache for some reason, don't add a second reference
std::list<item_reference> &target_list = active_items[it.processing_speed()];
if( std::find_if( target_list.begin(),
target_list.end(), [&it]( const item_reference & active_item_ref ) {

View File

@ -1812,13 +1812,13 @@ void workout_activity_actor::start( player_activity &act, Character &who )
_( "Physical effort determines workout efficiency, but also rate of exhaustion." );
workout_query.title = _( "Choose training intensity:" );
workout_query.addentry_desc( 1, true, 'l', pgettext( "training intensity", "Light" ),
_( "Light excercise comparable in intensity to walking, but more focused and methodical." ) );
_( "Light exercise comparable in intensity to walking, but more focused and methodical." ) );
workout_query.addentry_desc( 2, true, 'm', pgettext( "training intensity", "Moderate" ),
_( "Moderate excercise without excessive exertion, but with enough effort to break a sweat." ) );
_( "Moderate exercise without excessive exertion, but with enough effort to break a sweat." ) );
workout_query.addentry_desc( 3, true, 'a', pgettext( "training intensity", "Active" ),
_( "Active excercise with full involvement. Strenuous, but in a controlled manner." ) );
_( "Active exercise with full involvement. Strenuous, but in a controlled manner." ) );
workout_query.addentry_desc( 4, true, 'h', pgettext( "training intensity", "High" ),
_( "High intensity excercise with maximum effort and full power. Exhausting in the long run." ) );
_( "High intensity exercise with maximum effort and full power. Exhausting in the long run." ) );
workout_query.query();
switch( workout_query.ret ) {
case UILIST_CANCEL:
@ -1881,7 +1881,7 @@ void workout_activity_actor::do_turn( player_activity &act, Character &who )
who.mod_thirst( 1 );
}
if( calendar::once_every( 16_minutes / intensity_modifier ) ) {
//~ heavy breathing when excercising
//~ heavy breathing when exercising
std::string huff = _( "yourself huffing and puffing!" );
sounds::sound( location + tripoint_east, 2 * intensity_modifier, sounds::sound_t::speech, huff,
true );

View File

@ -104,7 +104,7 @@ class activity_actor
/**
* Called every turn, in player_activity::do_turn
* (with some indirection through player_activity::exertion_level)
* How strenous this acitivty level is
* How strenuous this activity level is
*/
virtual float exertion_level() const {
return get_type()->exertion_level();

View File

@ -2951,7 +2951,7 @@ void activity_handlers::fish_do_turn( player_activity *act, player *p )
survival_skill *= 2;
}
std::vector<monster *> fishables = g->get_fishable_monsters( act->coord_set );
// Fish are always there, even if it dosnt seem like they are visible!
// Fish are always there, even if it doesn't seem like they are visible!
if( fishables.empty() ) {
fish_chance += survival_skill / 2;
} else {

View File

@ -1790,7 +1790,7 @@ static bool fetch_activity( player &p, const tripoint &src_loc,
}
}
}
// if we got here, then the fetch failed for reasons that werent predicted before setting it.
// if we got here, then the fetch failed for reasons that weren't predicted before setting it.
// nothing was moved or picked up, and nothing can be moved or picked up
// so call the whole thing off to stop it looping back to this point ad nauseum.
p.set_moves( 0 );
@ -2745,7 +2745,7 @@ bool generic_multi_activity_handler( player_activity &act, player &p, bool check
}
if( !check_only ) {
if( !generic_multi_activity_do( p, activity_to_restore, act_info, src, src_loc ) ) {
// if the activity was succesful
// if the activity was successful
// then a new activity was assigned
// and the backlog was given the multi-act
return false;

View File

@ -76,7 +76,7 @@ class advanced_inv_area
int max_size = 0;
// appears as part of the legend at the top right
const std::string minimapname;
// user commant that corresponds to this location
// user command that corresponds to this location
const std::string actionname;
// used for isometric view
const aim_location relative_location;

View File

@ -83,7 +83,7 @@ bool advanced_inventory_pane::is_filtered( const item &it ) const
return !filtercache[str]( it );
}
/** converts a raw list of items to "stacks" - itms that are not count_by_charges that otherwise stack go into one stack */
/** converts a raw list of items to "stacks" - items that are not count_by_charges that otherwise stack go into one stack */
static std::vector<std::vector<item *>> item_list_to_stack( std::list<item *> item_list )
{
std::vector<std::vector<item *>> ret;

View File

@ -376,7 +376,7 @@ struct layering_item_info {
bool operator ==( const layering_item_info &o ) const {
// This is used to merge e.g. both arms into one entry when their items
// are equivalent. For that purpose we don't care about the exact
// penalities because they will list different body parts; we just
// penalties because they will list different body parts; we just
// check that the badness is the same (which is all that matters for
// rendering the right-hand list).
return this->penalties.badness() == o.penalties.badness() &&

View File

@ -766,7 +766,7 @@ static void assign_dmg_proportional( const JsonObject &jo, const std::string &na
// If it's 1, it wasn't loaded (or was loaded as 1)
if( scalar.damage_multiplier <= 0 ) {
jo.throw_error( "Proportional damage multipler is not a valid scalar", name );
jo.throw_error( "Proportional damage multiplier is not a valid scalar", name );
}
// If it's 1, it wasn't loaded (or was loaded as 1)

View File

@ -209,7 +209,7 @@ mission *avatar::get_active_mission() const
return active_mission;
}
void avatar::reset_all_misions()
void avatar::reset_all_missions()
{
active_mission = nullptr;
active_missions.clear();
@ -652,7 +652,7 @@ bool avatar::read( item &it, const bool continuous )
complex_player->disp_name() );
}
// push an indentifier of martial art book to the action handling
// push an identifier of martial art book to the action handling
if( it.type->use_methods.count( "MA_MANUAL" ) ) {
if( get_stamina() < get_stamina_max() / 10 ) {
@ -676,7 +676,7 @@ bool avatar::read( item &it, const bool continuous )
apply_morale.insert( elem.first );
}
for( player *elem : apply_morale ) {
//Fun bonuses for spritual and To Serve Man are no longer calculated here.
//Fun bonuses for spiritual and To Serve Man are no longer calculated here.
elem->add_morale( MORALE_BOOK, 0, book_fun_for( it, *elem ) * 15, decay_start + 30_minutes,
decay_start, false, it.type );
}

View File

@ -62,7 +62,7 @@ struct monster_visible_info {
std::vector<npc *> unique_types[9];
std::vector<const mtype *> unique_mons[9];
// If the moster visible in this direction is dangerous
// If the monster visible in this direction is dangerous
bool dangerous[8] = {};
};
@ -124,7 +124,7 @@ class avatar : public player
/** Resets stats, and applies effects in an idempotent manner */
void reset_stats() override;
/** Resets all missions before saving character to template */
void reset_all_misions();
void reset_all_missions();
std::vector<mission *> get_active_missions() const;
std::vector<mission *> get_completed_missions() const;
@ -157,7 +157,7 @@ class avatar : public player
bool radio_contact = false );
/**
* Try to disarm the NPC. May result in fail attempt, you receiving the wepon and instantly wielding it,
* Try to disarm the NPC. May result in fail attempt, you receiving the weapon and instantly wielding it,
* or the weapon falling down on the floor nearby. NPC is always getting angry with you.
* @param target Target NPC to disarm
*/
@ -330,7 +330,7 @@ class avatar : public player
*/
mission *active_mission;
/**
* The amont of calories spent and gained per day for the last 30 days.
* The amount of calories spent and gained per day for the last 30 days.
* the back is popped off and a new one added to the front at midnight each day
*/
std::list<daily_calories> calorie_diary;

View File

@ -889,7 +889,7 @@ void avatar_action::plthrow( avatar &you, item_location loc,
}
// make a copy and get the original.
// the copy is thrown and has its and the originals charges set appropiately
// the copy is thrown and has its and the originals charges set appropriately
// or deleted from inventory if its charges(1) or not stackable.
item *orig = loc.get_item();
item thrown = *orig;

View File

@ -217,7 +217,7 @@ dealt_projectile_attack projectile_attack( const projectile &proj_arg, const tri
// Determines whether it can penetrate obstacles
const bool is_bullet = proj_arg.speed >= 200 && !proj_effects.count( "NO_PENETRATE_OBSTACLES" );
// If we were targetting a tile rather than a monster, don't overshoot
// If we were targeting a tile rather than a monster, don't overshoot
// Unless the target was a wall, then we are aiming high enough to overshoot
const bool no_overshoot = proj_effects.count( "NO_OVERSHOOT" ) ||
( g->critter_at( target_arg ) == nullptr && here.passable( target_arg ) );

View File

@ -284,7 +284,7 @@ class basecamp
void start_clearcut();
void start_setup_hide_site();
void start_relay_hide_site();
/// Called when a compansion is sent to start fortifications
/// Called when a companion is sent to start fortifications
void start_fortifications( std::string &bldg_exp );
void start_combat_mission( const std::string &miss );
/// Called when a companion starts a chop shop @ref task mission

View File

@ -1943,7 +1943,7 @@ bool Character::has_enough_anesth( const itype &cbm )
return true;
}
void Character::consume_anesth_requirment( const itype &cbm, player &patient )
void Character::consume_anesth_requirement( const itype &cbm, player &patient )
{
const int weight = units::to_kilogram( patient.bodyweight() ) / 10;
const requirement_data req_anesth = *requirement_id( "anesthetic" ) *
@ -1957,7 +1957,7 @@ void Character::consume_anesth_requirment( const itype &cbm, player &patient )
invalidate_crafting_inventory();
}
bool Character::has_installation_requirment( const bionic_id &bid )
bool Character::has_installation_requirement( const bionic_id &bid )
{
if( bid->installation_requirement.is_empty() ) {
return false;
@ -1975,7 +1975,7 @@ bool Character::has_installation_requirment( const bionic_id &bid )
return true;
}
void Character::consume_installation_requirment( const bionic_id &bid )
void Character::consume_installation_requirement( const bionic_id &bid )
{
for( const auto &e : bid->installation_requirement->get_components() ) {
as_player()->consume_items( e, 1, is_crafting_component );
@ -2303,7 +2303,7 @@ bool Character::can_install_bionics( const itype &type, Character &installer, bo
// if we're doing self install
if( !autodoc && installer.is_avatar() ) {
return installer.has_enough_anesth( type ) &&
installer.has_installation_requirment( bioid );
installer.has_installation_requirement( bioid );
}
int chance_of_success = bionic_success_chance( autodoc, skill_level, difficult, installer );

View File

@ -54,7 +54,7 @@ struct bionic_data {
* If true, this bionic is included with another.
*/
bool included = false;
/**Factor modifiying weight capacity*/
/**Factor modifying weight capacity*/
float weight_capacity_modifier = 1.0f;
/**Bonus to weight capacity*/
units::mass weight_capacity_bonus = 0_gram;
@ -76,7 +76,7 @@ struct bionic_data {
bool exothermic_power_gen = false;
/**Type of field emitted by this bionic when it produces energy*/
emit_id power_gen_emission = emit_id::NULL_ID();
/**Amount of environemental protection offered by this bionic*/
/**Amount of environmental protection offered by this bionic*/
std::map<bodypart_str_id, size_t> env_protec;
/**Amount of bash protection offered by this bionic*/
@ -162,7 +162,7 @@ struct bionic {
bool powered = false;
/* Ammunition actually loaded in this bionic gun in deactivated state */
itype_id ammo_loaded = itype_id::NULL_ID();
/* Ammount of ammo actually held inside by this bionic gun in deactivated state */
/* Amount of ammo actually held inside by this bionic gun in deactivated state */
unsigned int ammo_count = 0;
/* An amount of time during which this bionic has been rendered inoperative. */
time_duration incapacitated_time;

View File

@ -189,7 +189,7 @@ void body_part_type::load( const JsonObject &jo, const std::string & )
mandatory( jo, was_loaded, "id", id );
mandatory( jo, was_loaded, "name", name );
// This is NOT the plural of `name`; it's a name refering to the pair of
// This is NOT the plural of `name`; it's a name referring to the pair of
// bodyparts which this bodypart belongs to, and thus should not be implemented
// using "ngettext" or "translation::make_plural". Otherwise, in languages
// without plural forms, translation of this string would indicate it
@ -450,7 +450,7 @@ int bodypart::get_wetness() const
return wetness;
}
int bodypart::get_frotbite_timer() const
int bodypart::get_frostbite_timer() const
{
return frostbite_timer;
}

View File

@ -256,7 +256,7 @@ class bodypart
int get_damage_disinfected() const;
int get_drench_capacity() const;
int get_wetness() const;
int get_frotbite_timer() const;
int get_frostbite_timer() const;
int get_temp_cur() const;
int get_temp_conv() const;

View File

@ -460,7 +460,7 @@ weekdays day_of_week( const time_point &p )
* <wito> Oh, I thought we were talking about week day numbering in general.
* <wito> Day 5 is a thursday, I think.
* <wito> Nah, Day 5 feels like a thursday. :P
* <wito> Which would put the apocalpyse on a saturday?
* <wito> Which would put the apocalypse on a saturday?
* <Starfyre> must be a thursday. I was never able to get the hang of those.
* <ZChris13> wito: seems about right to me
* <wito> kevingranade: add four for thursday. ;)

View File

@ -1,5 +1,5 @@
// NOLINTNEXTLINE(cata-header-guard)
// Due to an inability to supress assert popups when building against mingw-w64 and running on wine
// Due to an inability to suppress assert popups when building against mingw-w64 and running on wine
// We are wrapping the assert macro so that we can substitute functional behavior with that setup
// This copies the semantics of cassert, re-including the file re-defines the macro.

View File

@ -21,7 +21,7 @@
* and @ref JsonArrayOutputArchive) have (nearly) the same interface (mostly the `io` function),
* they only differ in what the functions do. This is an important design decision, it allows
* the archive type to be a template parameter. The `io` functions in both archive classes should
* therefor have a compatible signature.
* therefore have a compatible signature.
*
* Archive classes also have a `is_input` member type, which is either @ref std::true_type or
* if(the class is an input archive) or @ref std::false_type (it's an output archive). This can be
@ -128,7 +128,7 @@ struct enable_if_type {
/**
* Implementation for classes that don't have an archive_type_tag defined. They use the
* normal JsonSerializer / JsonDeserializer interface, which is handled directly by the Json
* classes. Therefor the functions here simply forward to those.
* classes. Therefore the functions here simply forward to those.
*/
template<class T, class E = void>
struct has_archive_tag : std::false_type {

View File

@ -3494,7 +3494,7 @@ void cata_tiles::draw_sct_frame( std::multimap<point, formatted_text> &overlay_s
iter->getStep() >= SCT.iMaxSteps / 2 );
if( use_font ) {
const direction direction = iter->getDirecton();
const direction direction = iter->getDirection();
// Compensate for string length offset added at SCT creation
// (it will be readded using font size and proper encoding later).
const int direction_offset = ( -direction_XY( direction ).x + 1 ) *

View File

@ -367,7 +367,7 @@ class cata_tiles
/* Tile Picking */
void get_tile_values( int t, const int *tn, int &subtile, int &rotation );
// as get_tile_values, but for unconnected tiles, infer rotation from surrouding walls
// as get_tile_values, but for unconnected tiles, infer rotation from surrounding walls
void get_tile_values_with_ter( const tripoint &p, int t, const int *tn, int &subtile,
int &rotation );
void get_connect_values( const tripoint &p, int &subtile, int &rotation, int connect_group,

View File

@ -358,7 +358,7 @@ std::string obscure_message( const std::string &str, const std::function<char()>
*
* The functions here provide a way to (de)serialize objects without actually
* including "json.h". The `*_wrapper` function create the JSON stream instances
* and therefor require "json.h", but the caller doesn't. Callers should just
* and therefore require "json.h", but the caller doesn't. Callers should just
* forward the stream reference to the actual (de)serialization function.
*
* The inline function do this by calling `T::(de)serialize` (which is assumed

View File

@ -79,7 +79,7 @@ inline std::vector<std::vector<int>> generate_cellular_automaton( const int widt
continue;
}
// Count our neighors.
// Count our neighbors.
const int neighbors = neighbor_count( current, width, height, point( i, j ) );
// Dead and > birth_limit neighbors, so become alive.

View File

@ -1145,7 +1145,7 @@ bool Character::check_mount_is_spooked()
}
// chance to spook per monster nearby:
// base 1% per turn.
// + 1% per square closer than 15 distanace. (1% - 15%)
// + 1% per square closer than 15 distance. (1% - 15%)
// * 2 if hostile monster is bigger than or same size as mounted creature.
// -0.25% per point of dexterity (low -1%, average -2%, high -3%, extreme -3.5%)
// -0.1% per point of strength ( low -0.4%, average -0.8%, high -1.2%, extreme -1.4% )
@ -6395,9 +6395,9 @@ void Character::update_bodytemp()
double scaled_temperature = logarithmic_range( BODYTEMP_VERY_COLD, BODYTEMP_VERY_HOT,
get_part_temp_cur( bp ) );
// Produces a smooth curve between 30.0 and 60.0.
double homeostasis_adjustement = 30.0 * ( 1.0 + scaled_temperature );
int clothing_warmth_adjustement = static_cast<int>( homeostasis_adjustement * warmth( bp ) );
int clothing_warmth_adjusted_bonus = static_cast<int>( homeostasis_adjustement * bonus_item_warmth(
double homeostasis_adjustment = 30.0 * ( 1.0 + scaled_temperature );
int clothing_warmth_adjustment = static_cast<int>( homeostasis_adjustment * warmth( bp ) );
int clothing_warmth_adjusted_bonus = static_cast<int>( homeostasis_adjustment * bonus_item_warmth(
bp ) );
// WINDCHILL
@ -6426,7 +6426,7 @@ void Character::update_bodytemp()
// Convergent temperature is affected by ambient temperature,
// clothing warmth, and body wetness.
set_part_temp_conv( bp, BODYTEMP_NORM + adjusted_temp + windchill * 100 +
clothing_warmth_adjustement );
clothing_warmth_adjustment );
// HUNGER / STARVATION
mod_part_temp_conv( bp, hunger_warmth );
// FATIGUE
@ -11262,7 +11262,7 @@ int Character::heartrate_bpm() const
temperature_modifier = 0.005f;
}
average_heartbeat *= 1 + ( ( player_local_temp - 65 ) * temperature_modifier );
//Limit avg from below with 20, arbitary
//Limit avg from below with 20, arbitrary
average_heartbeat = std::max( 20, average_heartbeat );
const float stamina_level = static_cast<float>( get_stamina() ) / get_stamina_max();
float stamina_effect = 0.0f;
@ -11301,10 +11301,10 @@ int Character::heartrate_bpm() const
//health effect that can make things better or worse is applied in the end.
//Based on get_max_healthy that already has bmi factored
const int healthy = get_max_healthy();
//a bit arbitary formula that can use some love
//a bit arbitrary formula that can use some love
float healthy_modifier = -0.05f * std::round( healthy / 20.0f );
heartbeat += average_heartbeat * healthy_modifier;
//Pain simply adds 2% per point after it reaches 5 (that's arbitary)
//Pain simply adds 2% per point after it reaches 5 (that's arbitrary)
const int cur_pain = get_perceived_pain();
float pain_modifier = 0.0f;
if( cur_pain > 5 ) {

View File

@ -1257,7 +1257,7 @@ class Character : public Creature, public visitable<Character>
/** finds the index of the bionic that corresponds to the currently wielded fake item
* i.e. bionic is `BIONIC_WEAPON` and weapon.typeId() == bio.info().fake_item */
cata::optional<int> active_bionic_weapon_index() const;
/** Checks if bionic can be deactivated (e.g. it's not incapacitaded and power level is sufficient)
/** Checks if bionic can be deactivated (e.g. it's not incapacitated and power level is sufficient)
* returns either success or failure with log message */
ret_val<bool> can_deactivate_bionic( int b, bool eff_only = false ) const;
/** Handles bionic deactivation effects of the entered bionic, returns if anything
@ -1276,10 +1276,10 @@ class Character : public Creature, public visitable<Character>
/**Has enough anesthetic for surgery*/
bool has_enough_anesth( const itype &cbm, player &patient );
bool has_enough_anesth( const itype &cbm );
void consume_anesth_requirment( const itype &cbm, player &patient );
/**Has the required equipement for manual installation*/
bool has_installation_requirment( const bionic_id &bid );
void consume_installation_requirment( const bionic_id &bid );
void consume_anesth_requirement( const itype &cbm, player &patient );
/**Has the required equipment for manual installation*/
bool has_installation_requirement( const bionic_id &bid );
void consume_installation_requirement( const bionic_id &bid );
/** Handles process of introducing patient into anesthesia during Autodoc operations. Requires anesthesia kits or NOPAIN mutation */
void introduce_into_anesthesia( const time_duration &duration, player &installer,
bool needs_anesthesia );
@ -1313,7 +1313,7 @@ class Character : public Creature, public visitable<Character>
/** Initialize all the values needed to start the operation player_activity */
bool uninstall_bionic( const bionic_id &b_id, player &installer, bool autodoc = false,
int skill_level = -1 );
/**Succes or failure of removal happens here*/
/**Success or failure of removal happens here*/
void perform_uninstall( const bionic_id &bid, int difficulty, int success,
const units::energy &power_lvl, int pl_skill );
/**When a player fails the surgery*/
@ -1458,7 +1458,7 @@ class Character : public Creature, public visitable<Character>
/** Wear item; returns nullopt on fail, or pointer to newly worn item on success.
* If interactive is false, don't alert the player or drain moves on completion.
* If do_calc_encumbrance is false, don't recalculat encumbrance, caller must call it eventually.
* If do_calc_encumbrance is false, don't recalculate encumbrance, caller must call it eventually.
*/
cata::optional<std::list<item>::iterator>
wear_item( const item &to_wear, bool interactive = true, bool do_calc_encumbrance = true );
@ -1641,7 +1641,7 @@ class Character : public Creature, public visitable<Character>
/// returning the largest weight liftable by an item in range.
units::mass best_nearby_lifting_assist() const;
/// Alternate version if you need to specify a different orign point for nearby vehicle sources of lifting
/// Alternate version if you need to specify a different origin point for nearby vehicle sources of lifting
/// used for operations on distant objects (e.g. vehicle installation/uninstallation)
units::mass best_nearby_lifting_assist( const tripoint &world_pos ) const;
@ -1656,7 +1656,7 @@ class Character : public Creature, public visitable<Character>
/// Sometimes we need to calculate hypothetical volume or weight. This
/// struct offers two possible tweaks: a collection of items and
/// coutnts to remove, or an entire replacement inventory.
/// counts to remove, or an entire replacement inventory.
struct item_tweaks {
item_tweaks() = default;
item_tweaks( const std::map<const item *, int> &w ) :
@ -1732,7 +1732,7 @@ class Character : public Creature, public visitable<Character>
*/
ret_val<bool> can_unwield( const item &it ) const;
/**
* Check player capable of droping an item.
* Check player capable of dropping an item.
* @param it Thing to be unwielded
*/
ret_val<bool> can_drop( const item &it ) const;
@ -2023,9 +2023,9 @@ class Character : public Creature, public visitable<Character>
void use_fire( int quantity );
void assign_stashed_activity();
bool check_outbounds_activity( const player_activity &act, bool check_only = false );
/// @warning Legacy activity assignment, does not work for any activites using
/// @warning Legacy activity assignment, does not work for any activities using
/// the new activity_actor class and may cause issues with resuming.
/// @todo delete this once migration of activites to the activity_actor system is complete
/// @todo delete this once migration of activities to the activity_actor system is complete
void assign_activity( const activity_id &type, int moves = calendar::INDEFINITELY_LONG,
int index = -1, int pos = INT_MIN,
const std::string &name = "" );
@ -2301,8 +2301,7 @@ class Character : public Creature, public visitable<Character>
/** Handles the nutrition value for a comestible **/
int nutrition_for( const item &comest ) const;
/** Can the food be [theoretically] eaten no matter the consequen
ces? */
/** Can the food be [theoretically] eaten no matter the consequences? */
ret_val<edible_rating> can_eat( const item &food ) const;
/**
* Same as @ref can_eat, but takes consequences into account.
@ -2366,7 +2365,7 @@ class Character : public Creature, public visitable<Character>
bool wearing_something_on( const bodypart_id &bp ) const;
/** Returns true if the character is wearing something occupying the helmet slot */
bool is_wearing_helmet() const;
/** Returns the total encumbrance of all SKINTIGHT and HELMET_COMPAT items coveringi
/** Returns the total encumbrance of all SKINTIGHT and HELMET_COMPAT items covering
* the head */
int head_cloth_encumbrance() const;
/** Same as footwear factor, but for arms */
@ -2570,7 +2569,7 @@ class Character : public Creature, public visitable<Character>
return i;
} );
/** Consume tools for the next multiplier * 5% progress of the craft */
bool craft_consume_tools( item &craft, int mulitplier, bool start_craft );
bool craft_consume_tools( item &craft, int multiplier, bool start_craft );
void consume_tools( const comp_selection<tool_comp> &tool, int batch );
void consume_tools( map &m, const comp_selection<tool_comp> &tool, int batch,
const tripoint &origin = tripoint_zero, int radius = PICKUP_RANGE,

View File

@ -80,9 +80,9 @@ void clothing_mod::load( const JsonObject &jo, const std::string & )
for( const JsonValue entry : mv_jo.get_array( "proportion" ) ) {
const std::string &str = entry.get_string();
if( str == "thickness" ) {
mv.thickness_propotion = true;
mv.thickness_proportion = true;
} else if( str == "coverage" ) {
mv.coverage_propotion = true;
mv.coverage_proportion = true;
} else {
entry.throw_error( R"(Invalid value, valid are: "coverage" and "thickness")" );
}
@ -99,10 +99,10 @@ float clothing_mod::get_mod_val( const clothing_mod_type &type, const item &it )
for( const mod_value &mv : mod_values ) {
if( mv.type == type ) {
float tmp = mv.value;
if( mv.thickness_propotion ) {
if( mv.thickness_proportion ) {
tmp *= thickness;
}
if( mv.coverage_propotion ) {
if( mv.coverage_proportion ) {
tmp *= coverage / 100.0f;
}
if( mv.round_up ) {

View File

@ -37,8 +37,8 @@ struct mod_value {
clothing_mod_type type = clothing_mod_type::num_clothing_mod_types;
float value = 0.0f;
bool round_up = false;
bool thickness_propotion = false;
bool coverage_propotion = false;
bool thickness_proportion = false;
bool coverage_proportion = false;
};
struct clothing_mod {

View File

@ -2573,7 +2573,7 @@ class colony : private element_allocator_type
// For all subsequent groups, we follow this logic:
// 1. If distance is larger than the total number of non-erased elements in a group, we skip that group and subtract the number of elements in that group from distance
// 2. If distance is smaller than the total number of non-erased elements in a group, then:
// a. if there're no erased elements in the group we simply add distance to group->elements to find the new location for the iterator
// a. if there are no erased elements in the group we simply add distance to group->elements to find the new location for the iterator
// b. if there are erased elements in the group, we manually iterate and subtract 1 from distance on each iteration, until the new iterator location is found ie. distance = 0
// Note: incrementing element_pointer is avoided until necessary to avoid needless calculations
@ -3037,7 +3037,7 @@ class colony : private element_allocator_type
// Process initial group:
if( iterator1.group_pointer->free_list_head == std::numeric_limits<skipfield_type>::max() ) {
// If no prior erasures have occured in this group we can do simple addition
// If no prior erasures have occurred in this group we can do simple addition
distance += static_cast<diff_type>( iterator1.group_pointer->last_endpoint -
iterator1.element_pointer );
} else if( iterator1.element_pointer == iterator1.group_pointer->elements ) {

View File

@ -182,9 +182,9 @@ nc_color color_manager::highlight_from_names( const std::string &name,
const std::string &bg_name ) const
{
/*
// Base Name Highlight Red BG White BG Green BG Yellow BG
add_hightlight("c_black", "h_black", "", "c_black_white", "c_black_green", "c_black_yellow", "c_black_magenta", "c_black_cyan");
add_hightlight("c_white", "h_white", "c_white_red", "c_white_white", "c_white_green", "c_white_yellow", "c_white_magenta", "c_white_cyan");
// Base Name Highlight Red BG White BG Green BG Yellow BG
add_highlight("c_black", "h_black", "", "c_black_white", "c_black_green", "c_black_yellow", "c_black_magenta", "c_black_cyan");
add_highlight("c_white", "h_white", "c_white_red", "c_white_white", "c_white_green", "c_white_yellow", "c_white_magenta", "c_white_cyan");
etc.
*/

View File

@ -1788,7 +1788,7 @@ void finalize_constructions()
for( construction &con : constructions ) {
if( !con.group.is_valid() ) {
debugmsg( "Invalid construction group (%s) defiend for construction (%s)",
debugmsg( "Invalid construction group (%s) defined for construction (%s)",
con.group.str(), con.str_id.str() );
}
if( con.vehicle_start ) {

View File

@ -669,7 +669,7 @@ static item *set_item_inventory( Character &p, item &newit )
/**
* Helper for @ref set_item_map_or_vehicle
* This is needed to still get a vaild item_location if overflow occurs
* This is needed to still get a valid item_location if overflow occurs
*/
static item_location set_item_map( const tripoint &loc, item &newit )
{
@ -1870,7 +1870,7 @@ Character::select_tool_component( const std::vector<tool_comp> &tools, int batch
return selected;
}
bool Character::craft_consume_tools( item &craft, int mulitplier, bool start_craft )
bool Character::craft_consume_tools( item &craft, int multiplier, bool start_craft )
{
if( !craft.is_craft() ) {
debugmsg( "craft_consume_tools() called on non-craft '%s.' Aborting.", craft.tname() );
@ -1880,7 +1880,7 @@ bool Character::craft_consume_tools( item &craft, int mulitplier, bool start_cra
return true;
}
const auto calc_charges = [&craft, &start_craft, &mulitplier]( int charges ) {
const auto calc_charges = [&craft, &start_craft, &multiplier]( int charges ) {
int ret = charges;
if( ret <= 0 ) {
@ -1894,7 +1894,7 @@ bool Character::craft_consume_tools( item &craft, int mulitplier, bool start_cra
ret /= 20;
// In case more than 5% progress was accomplished in one turn
ret *= mulitplier;
ret *= multiplier;
// If just starting consume the remainder as well
if( start_craft ) {

View File

@ -1126,14 +1126,14 @@ int related_menu_fill( uilist &rmenu,
std::vector<const recipe *> current_part = available.search_result( p.first );
if( !current_part.empty() ) {
bool defferent_recipes = false;
bool different_recipes = false;
// 1st pass: check if we need to add group
for( size_t recipe_n = 0; recipe_n < current_part.size(); recipe_n++ ) {
if( current_part[recipe_n]->result_name() != recipe_name ) {
// add group
rmenu.addentry( ++np_last, false, -1, recipe_name );
defferent_recipes = true;
different_recipes = true;
break;
} else if( recipe_n == current_part.size() - 1 ) {
// only one result
@ -1141,9 +1141,9 @@ int related_menu_fill( uilist &rmenu,
}
}
if( defferent_recipes ) {
if( different_recipes ) {
std::string prev_item_name;
// 2nd pass: add defferent recipes
// 2nd pass: add different recipes
for( size_t recipe_n = 0; recipe_n < current_part.size(); recipe_n++ ) {
std::string cur_item_name = current_part[recipe_n]->result_name();
if( cur_item_name != prev_item_name ) {

View File

@ -1679,7 +1679,7 @@ int Creature::get_part_temp_conv( const bodypart_id &id ) const
int Creature::get_part_frostbite_timer( const bodypart_id &id ) const
{
return get_part_helper( *this, id, &bodypart::get_frotbite_timer );
return get_part_helper( *this, id, &bodypart::get_frostbite_timer );
}
float Creature::get_part_wetness_percentage( const bodypart_id &id ) const

View File

@ -358,7 +358,7 @@ class Creature : public location, public viewer
/**
* For fake-players (turrets, mounted turrets) this functions
* chooses a target. This is for creatures that are friendly towards
* the player and therefor choose a target that is hostile
* the player and therefore choose a target that is hostile
* to the player.
*
* @param range The maximal range to look for monsters, anything
@ -393,7 +393,7 @@ class Creature : public location, public viewer
virtual int deal_melee_attack( Creature *source, int hitroll );
// modifies the damage dealt based on the creature's enchantments
// since creatures currently don't have enchantmnts, this is just virtual
// since creatures currently don't have enchantments, this is just virtual
virtual damage_instance modify_damage_dealt_with_enchantments( const damage_instance &dam ) const;
// completes a melee attack against the creature
// dealt_dam is overwritten with the values of the damage dealt

View File

@ -1813,7 +1813,7 @@ void debug()
g->display_toggle_overlay( ACTION_DISPLAY_TRANSPARENCY );
break;
case debug_menu_index::DISPLAY_REACHABILITY_ZONES:
g->display_reahability_zones();
g->display_reachability_zones();
break;
case debug_menu_index::HOUR_TIMER:
g->toggle_debug_hour_timer();

View File

@ -1472,7 +1472,7 @@ std::string texitify_healing_power( const int power )
std::string texitify_bandage_power( const int power )
{
if( power < 5 ) {
return colorize( _( "miniscule" ), c_red );
return colorize( _( "minuscule" ), c_red );
} else if( power < 10 ) {
return colorize( _( "small" ), c_light_red );
} else if( power < 15 ) {

View File

@ -14,7 +14,7 @@ class enum_bitset
static_assert( std::is_enum<E>::value, "the template argument is not an enum." );
static_assert( has_enum_traits<E>::value,
"a specialization of 'enum_traits<E>' template containing 'last' element of the enum must be defined somewhere. "
"The `last` constant must be of the same type as the enum iteslf."
"The `last` constant must be of the same type as the enum itself."
);
public:

View File

@ -10,7 +10,7 @@
// by various generic code to iterate over all the enumerators. Most notably
// it enables io::string_to_enum and thereby string-based json serialization.
// * Specifying that your enum is a flag enum, and therefore that you want
// bitwise operators to work for it. This saves everyone from implemetning
// bitwise operators to work for it. This saves everyone from implementing
// those operators independently.
//
// Usage examples:

View File

@ -22,7 +22,7 @@ class stats_tracker_state;
using event_fields_type = std::unordered_map<std::string, cata_variant_type>;
// event_tansformations and event_statistics are both functions of events.
// event_transformations and event_statistics are both functions of events.
// They are intended to be calculated via a stats_tracker object.
// They can be defined in json, and are useful therein for the creation of
// scores and achievements.

View File

@ -420,7 +420,7 @@ static std::vector<tripoint> shrapnel( const tripoint &src, int power,
frag.proj.impact = damage_instance::physical( 0, damage, 0, 0 );
// dealt_dam.total_damage() == 0 means armor block
// dealt_dam.total_damage() > 0 means took damage
// Need to diffentiate target among player, npc, and monster
// Need to differentiate target among player, npc, and monster
// Do we even print monster damage?
int damage_taken = 0;
int damaging_hits = 0;
@ -925,8 +925,8 @@ fragment_cloud accumulate_fragment_cloud( const fragment_cloud &cumulative_cloud
const fragment_cloud &current_cloud, const int &distance )
{
// Velocity is the cumulative and continuous decay of speed,
// so it is accumulated the same way as light attentuation.
// Density is the accumulation of discrete attenuaton events encountered in the traversed squares,
// so it is accumulated the same way as light attenuation.
// Density is the accumulation of discrete attenuation events encountered in the traversed squares,
// so each term is added to the series via multiplication.
return fragment_cloud( ( ( distance - 1 ) * cumulative_cloud.velocity + current_cloud.velocity ) /
distance,

View File

@ -467,7 +467,7 @@ static int camp_food_supply( int change = 0, bool return_days = false );
static int camp_food_supply( time_duration work );
/// Returns the total charges of food time_duration @ref work costs
static int time_to_food( time_duration work );
/// Changes the faction respect for you by @ref change, returns repect
/// Changes the faction respect for you by @ref change, returns respect
static int camp_discipline( int change = 0 );
/// Changes the faction opinion for you by @ref change, returns opinion
static int camp_morale( int change = 0 );

View File

@ -94,7 +94,7 @@ std::string enum_to_string<description_affix>( description_affix data )
case description_affix::DESCRIPTION_AFFIX_COVERED_IN: return "covered_in";
case description_affix::DESCRIPTION_AFFIX_ON: return "on";
case description_affix::DESCRIPTION_AFFIX_UNDER: return "under";
case description_affix::DESCRIPTION_AFFIX_ILLUMINTED_BY: return "illuminated_by";
case description_affix::DESCRIPTION_AFFIX_ILLUMINATED_BY: return "illuminated_by";
// *INDENT-ON*
case description_affix::DESCRIPTION_AFFIX_NUM:
break;

View File

@ -32,7 +32,7 @@ enum class description_affix : int {
DESCRIPTION_AFFIX_COVERED_IN,
DESCRIPTION_AFFIX_ON,
DESCRIPTION_AFFIX_UNDER,
DESCRIPTION_AFFIX_ILLUMINTED_BY,
DESCRIPTION_AFFIX_ILLUMINATED_BY,
DESCRIPTION_AFFIX_NUM
};

View File

@ -2139,7 +2139,7 @@ static hint_rating rate_action_wield( const avatar &you, const item &it )
int game::inventory_item_menu( item_location locThisItem,
const std::function<int()> &iStartX,
const std::function<int()> &iWidth,
const inventory_item_menu_positon position )
const inventory_item_menu_position position )
{
int cMenu = static_cast<int>( '+' );
@ -7232,7 +7232,7 @@ look_around_result game::look_around( const bool show_window, tripoint &center,
}
} else if( action == "display_reachability_zones" ) {
if( !MAP_SHARING::isCompetitive() || MAP_SHARING::isDebugger() ) {
display_reahability_zones();
display_reachability_zones();
}
} else if( action == "debug_radiation" ) {
if( !MAP_SHARING::isCompetitive() || MAP_SHARING::isDebugger() ) {
@ -11959,8 +11959,8 @@ void game::display_transparency()
}
}
// Debug menu: askes which reachability cache to display
void game::display_reahability_zones()
// Debug menu: asks which reachability cache to display
void game::display_reachability_zones()
{
if( use_tiles ) {
display_toggle_overlay( ACTION_DISPLAY_REACHABILITY_ZONES );

View File

@ -528,7 +528,7 @@ class game
void catch_a_monster( monster *fish, const tripoint &pos, player *p,
const time_duration &catch_duration );
/**
* Get the contiguous fishable locations starting at fish_pos, out to the specificed distance.
* Get the contiguous fishable locations starting at fish_pos, out to the specified distance.
* @param distance Distance around the fish_pos to examine for contiguous fishable locations.
* @param fish_pos The location being fished.
* @return A set of locations representing the valid contiguous fishable locations.
@ -592,7 +592,7 @@ class game
void draw_trail_to_square( const tripoint &t, bool bDrawX );
enum inventory_item_menu_positon {
enum inventory_item_menu_position {
RIGHT_TERMINAL_EDGE,
LEFT_OF_INFO,
RIGHT_OF_INFO,
@ -605,7 +605,7 @@ class game
const std::function<int()> &width = []() {
return 50;
},
inventory_item_menu_positon position = RIGHT_OF_INFO );
inventory_item_menu_position position = RIGHT_OF_INFO );
/** Custom-filtered menu for inventory and nearby items and those that within specified radius */
item_location inv_map_splice( const item_filter &filter, const std::string &title, int radius = 0,
@ -976,7 +976,7 @@ class game
bool r_cache_vertical;
reachability_cache_quadrant quadrant;
} debug_rz_display = {};
void display_reahability_zones(); // Displays reachability zones
void display_reachability_zones(); // Displays reachability zones
spell_events &spell_events_subscriber();

View File

@ -293,7 +293,7 @@ input_context game::get_player_input( std::string &action )
//Check for creatures on all drawing positions and offset if necessary
for( auto iter = SCT.vSCT.rbegin(); iter != SCT.vSCT.rend(); ++iter ) {
const direction oCurDir = iter->getDirecton();
const direction oCurDir = iter->getDirection();
const int width = utf8_width( iter->getText() );
for( int i = 0; i < width; ++i ) {
tripoint tmp( iter->getPosX() + i, iter->getPosY(), get_map().get_abs_sub().z );
@ -303,7 +303,7 @@ input_context game::get_player_input( std::string &action )
i = -1;
int iPos = iter->getStep() + iter->getStepOffset();
for( auto iter2 = iter; iter2 != SCT.vSCT.rend(); ++iter2 ) {
if( iter2->getDirecton() == oCurDir &&
if( iter2->getDirection() == oCurDir &&
iter2->getStep() + iter2->getStepOffset() <= iPos ) {
if( iter2->getType() == "hp" ) {
iter2->advanceStepOffset();
@ -2556,7 +2556,7 @@ bool game::handle_action()
if( MAP_SHARING::isCompetitive() && !MAP_SHARING::isDebugger() ) {
break; //don't do anything when sharing and not debugger
}
display_reahability_zones();
display_reachability_zones();
break;
case ACTION_TOGGLE_DEBUG_MODE:

View File

@ -2723,14 +2723,14 @@ void iexamine::arcfurnace_empty( player &p, const tripoint &examp )
}
if( !fuel_present ) {
add_msg( _( "This furance is empty. Fill it with powdered coke and lime mix, and try again." ) );
add_msg( _( "This furnace is empty. Fill it with powdered coke and lime mix, and try again." ) );
return;
}
///\EFFECT_FABRICATION decreases loss when firing a furnace
const int skill = p.get_skill_level( skill_fabrication );
int loss = 60 - 2 *
skill; // Inefficency is still fine, coal and limestone is abundant
skill; // Inefficiency is still fine, coal and limestone is abundant
// Burn stuff that should get charred, leave out the rest
units::volume total_volume = 0_ml;
@ -2741,7 +2741,7 @@ void iexamine::arcfurnace_empty( player &p, const tripoint &examp )
const itype *char_type = item::find_type( itype_unfinished_cac2 );
int char_charges = char_type->charges_per_volume( ( 100 - loss ) * total_volume / 100 );
if( char_charges < 1 ) {
add_msg( _( "The batch in this furance is too small to yield usable calcium carbide." ) );
add_msg( _( "The batch in this furnace is too small to yield usable calcium carbide." ) );
return;
}
//arc furnaces require a huge amount of current, so 1 full storage battery would work as a stand in
@ -3948,7 +3948,7 @@ void trap::examine( const tripoint &examp ) const
player_character.practice( skill_traps, 2 * difficulty );
}
}
//Picking up bubblewrap continously could powerlevel trap proficiencies, with no risk involved.
//Picking up bubblewrap continuously could powerlevel trap proficiencies, with no risk involved.
if( difficulty != 0 ) {
player_character.practice_proficiency( proficiency_prof_traps, 5_minutes );
// Disarming a trap gives you a token bonus to learning to set them properly.
@ -4576,7 +4576,7 @@ void iexamine::pay_gas( player &p, const tripoint &examp )
}
if( amount_money ) {
add_msg( m_info, _( "All cash cards at maximum capacity." ) );
// all fuel already removed from pump, so remaning amount_money simply ignored
// all fuel already removed from pump, so remaining amount_money simply ignored
}
add_msg( m_info, _( "Your cash cards now hold %s." ),
format_money( p.charges_of( itype_cash_card ) ) );
@ -5131,7 +5131,7 @@ void iexamine::autodoc( player &p, const tripoint &examp )
}
}
if( patient.leak_level( flag_RADIOACTIVE ) ) {
popup( _( "Warning! Autodoc detected a radiation leak of %d mSv from items in patient's posession. Urgent decontamination procedures highly recommended." ),
popup( _( "Warning! Autodoc detected a radiation leak of %d mSv from items in patient's possession. Urgent decontamination procedures highly recommended." ),
patient.leak_level( flag_RADIOACTIVE ) );
}
break;

View File

@ -616,7 +616,7 @@ void DynamicDataLoader::finalize_loaded_data( loading_ui &ui )
{ _( "Constructions" ), &finalize_constructions },
{ _( "Crafting recipes" ), &recipe_dictionary::finalize },
{ _( "Recipe groups" ), &recipe_group::check },
{ _( "Martial arts" ), &finialize_martial_arts },
{ _( "Martial arts" ), &finalize_martial_arts },
{ _( "NPC classes" ), &npc_class::finalize_all },
{ _( "Missions" ), &mission_type::finalize },
{ _( "Harvest lists" ), &harvest_list::finalize_all },
@ -717,7 +717,7 @@ void DynamicDataLoader::check_consistency( loading_ui &ui )
{ _( "Statistics" ), &event_statistic::check_consistency },
{ _( "Scent types" ), &scent_type::check_scent_consistency },
{ _( "Scores" ), &score::check_consistency },
{ _( "Achivements" ), &achievement::check_consistency },
{ _( "Achievements" ), &achievement::check_consistency },
{ _( "Disease types" ), &disease_type::check_disease_consistency },
{ _( "Factions" ), &faction_template::check_consistency },
}

View File

@ -65,7 +65,7 @@ static const int min_column_gap = 2;
static const int normal_column_gap = 8;
/**
* The minimal occupancy ratio to align columns to the center
* @see inventory_selector::get_columens_occupancy_ratio()
* @see inventory_selector::get_columns_occupancy_ratio()
*/
static const double min_ratio_to_center = 0.85;

View File

@ -1264,7 +1264,7 @@ item::sizing item::get_sizing( const Character &p ) const
const bool big = p.get_size() == creature_size::huge;
// due to the iterative nature of these features, something can fit and be undersized/oversized
// but that is fine because we have separate logic to adjust encumberance per each. One day we
// but that is fine because we have separate logic to adjust encumbrance per each. One day we
// may want to have fit be a flag that only applies if a piece of clothing is sized for you as there
// is a bit of cognitive dissonance when something 'fits' and is 'oversized' and the same time
const bool undersize = has_flag( flag_UNDERSIZE );
@ -5534,7 +5534,7 @@ int item::get_comestible_fun() const
}
if( has_flag( flag_MUSHY ) ) {
return std::min( -5, fun ); // defrosted MUSHY food is practicaly tastless or tastes off
return std::min( -5, fun ); // defrosted MUSHY food is practically tasteless or tastes off
}
return fun;

View File

@ -720,7 +720,7 @@ class item : public visitable<item>
*/
void update_modified_pockets();
// for pocket update stuff, which pocket is @contained in?
// returns a nullptr if the item is not contaiend, and prints a debug message
// returns a nullptr if the item is not contained, and prints a debug message
item_pocket *contained_where( const item &contained );
const item_pocket *contained_where( const item &contained ) const;
/** Whether this is a container which can be used to store liquids. */
@ -1666,10 +1666,10 @@ class item : public visitable<item>
* item provides when worn. See @ref player::get_env_resist. Higher values are better.
* For non-armor it returns 0.
*
* @param override_base_resist Pass this to artifically increase the
* @param override_base_resist Pass this to artificially increase the
* base resistance, so that the function can take care of other
* modifications to resistance for you. Note that this parameter will
* never decrease base resistnace.
* never decrease base resistance.
*/
int get_env_resist( int override_base_resist = 0 ) const;
/**

View File

@ -282,7 +282,7 @@ void Item_factory::finalize_pre( itype &obj )
}
}
// Migrate compataible magazines
// Migrate compatible magazines
for( auto kv : obj.magazines ) {
for( auto mag_it = kv.second.begin(); mag_it != kv.second.end(); ) {
auto maybe_migrated = migrated_magazines.find( *mag_it );

View File

@ -253,7 +253,7 @@ struct islot_armor {
*/
int warmth = 0;
/**
* Factor modifiying weight capacity
* Factor modifying weight capacity
*/
float weight_capacity_modifier = 1.0f;
/**

View File

@ -6717,7 +6717,7 @@ static const std::unordered_map<description_affix, std::string> description_affi
{ description_affix::DESCRIPTION_AFFIX_COVERED_IN, translate_marker( " covered in %s" ) },
{ description_affix::DESCRIPTION_AFFIX_ON, translate_marker( " on %s" ) },
{ description_affix::DESCRIPTION_AFFIX_UNDER, translate_marker( " under %s" ) },
{ description_affix::DESCRIPTION_AFFIX_ILLUMINTED_BY, translate_marker( " in %s" ) },
{ description_affix::DESCRIPTION_AFFIX_ILLUMINATED_BY, translate_marker( " in %s" ) },
};
static std::string colorized_field_description_at( const tripoint &point )

View File

@ -3784,8 +3784,8 @@ int install_bionic_actor::use( player &p, item &it, bool, const tripoint & ) con
{
if( p.can_install_bionics( *it.type, p, false ) ) {
if( !p.has_trait( trait_DEBUG_BIONICS ) ) {
p.consume_installation_requirment( it.type->bionic->id );
p.consume_anesth_requirment( *it.type, p );
p.consume_installation_requirement( it.type->bionic->id );
p.consume_anesth_requirement( *it.type, p );
}
return p.install_bionics( *it.type, p, false ) ? it.type->charges_to_use() : 0;
} else {

Some files were not shown because too many files have changed in this diff Show More